Home | About | Partners | Contact Us
SourceForge Logo

Quick Links

Thoughts and Rants
SourceForge Info
Browse CVS
Mailing Lists


Concept programming
Thin Tools
Active Libraries

More Info

Related Ideas
Some history
Other links
The GNU Project

Mozart Links

Intentional Programming

Intentional Programming is a former research program at Microsoft, led by Charles Simonyi, which seems to have the same objectives as Mozart, albeit with a different (and arguably better) implementation. Two years ago, they seemed very advanced, and were even "close to productization" at some point. But the project has been cancelled at Microsoft. And they are still not Free Software :-) A new company has just been created to support that effort, but the web site is quite uninformative at this point.

Other links for IP:
Lutz Roeder's Page
IP Wiki
Yahoo Group

C++ Resources

Open C++ is a reflective environment offering compiler plug-ins for C++. There is also an OpenJava. The general objective appears to be the same, the implementation details appear vastly different. Definitely worth a look if you need Mozart-like tools for C++.

In C++, the best known generic library is the Standard Templates Library which is at the core of the C++ Standard Library. Alex Stepanov's formalized numerous ideas regarding type information and really demonstrated the power of generic programming. It also made some limits of C++ visible.

Blitz++ is a very powerful and high-performance numeric library, which even sometimes beats Fortran. Blitz++ demonstrated how users can direct the (C++) compiler to generate efficient code using appropriate techniques, rather than rely on the (Fortran) compiler to recognize and optimize numerical patterns.

Expression templates and template metaprogramming are advanced techniques to let C++ compilers perform some symbolic computations for you. Unfortunately, they push the limits on what is practical with C++, and require a frightening amount of work from the poor C++ compiler. But they are neat.

The GCC Introspector project intends to add support for introspection in GCC itself. I sure hope that they succeed, if only because it would allow me to get rid of the tone preprocessor completely :-) See also the log.

Java Resources

Recoder is a Java source-to-source translator API, similar to Moka. At first sight, it seems more difficult to program than Mozart, but the concepts are quite close.

Aspect Oriented Programming is a way to deal with distributed aspects of programs in large applications, such as error checking strategies, synchronization policies, etc. I think Mozart is a valid tool to implement aspect-oriented programming.

Project ACE is a Java-centric automatic code generation thingie. Graphical. Talks about "intents" (a la Intentional Programming, no doubt). At first sight, it doesn't seem anywhere as revolutionary as IP, however.

Non-textual Program Representations

The SCID page has a good deal of information on non-textual program representations, and many interesting links.

Copyright Christophe de Dinechin
First published Feb 17, 2000
Version 1.4 (updated 2002/10/09 06:16:44)