Optimizing Oberon-2 Compiler

Note: The information on this page is very out of date. I have not found the time to update it in a meaningful way. For information on the oo2c-2.x releases, please refer to the mailing list archives and the change logs of the file releases on the SourceForge project page. --mva

an optimizing compiler,

a number of source code and compiler related tools,

a set of standard library modules, and

a reference manual.

The flexible nature of the GSA code representation allows for efficient code improving transformations on the intermediate code. Due to its special properties, it is quite easy to implement optimizations like constant propagation, copy propagation, procedure inlining, or common subexpression elimination, just to name a few. The compiler front-end translates directly to GSA. It is retargetable, that is, it can be adjusted to suit different target platforms. A prototype back-end exists, using ANSI-C as the target language. This back-end is used by OO2C, the generic OOC compiler for the Unix platform.

OO2C can use two add-on packages to expand its own capabilities: Hans-J. Boehm's conservative garbage collector gc and GNU libtool. The garbage collector extends OO2C's run-time system with the ability to free unused heap objects. With the help of libtool, OO2C can create shared and static libraries from a set of modules. Please refer to the chapter "Installing OO2C" in Part II of the OOC Reference Manual for information on how to use these packages.

The OO2C distribution is available here.

For questions, comments, or suggestions regarding the manual you can contact the authors:

Part I (Library) Eric Nikitin Part II (Compiler) Michael van Acken

Please note: Most chapters (about 90%) of the reference manual are finished, but it is still a work in progress.

The HTML version of the manual is here. The OO2C distribution includes the manual's `texinfo' source and the derived `info' files. The sources and additional output formats (including Postscript) are also available separately in the OOCref tar file.

Past postings to the mailing list are available in the archive, very old postings are here.

If you want to contribute to OOC, or have questions, send mail to mva@users.sf.net.

Links

Michael van Acken mva@users.sf.net