The Mother Modular Generic Compiler
(c)2001,2002,2003 Felix L. Winkelmann, Oskar Schirmer
The mother modular generic compiler is designed to compile arbitrary computer languages to arbitrary assembler code. the desired language and assembler is specified as tables, so there is no need to generate something like a cross compiler.
Unlike other compiler-compiler projects, or compiler-generator projects, mother is not used to generate a compiler which in turm might translate a specific source language to specific machine code. Instead, mother compiles on the fly, knowing the source language by its tabular definition and the machine code structure likewise.
Further, mother is modular, as it is made up of a set of seperate tools which are used in the very unixable fashion of calling them in a pipe.
Mother is in no way designed or intended to be a fast compiler. It is designed to be flexible, extendible, serviceable, and, in the distant future, to produce good code.
Mother is a compiler, so its main task is to handle abstract data structures, lists, trees and the like. It is written in Scheme, not because Scheme is the perfect language for this purpose, but because Scheme relieves us from handling all the annoyance off the road.
- Usage
Currently, there is not yet an usable version. To use it, first get Yourself a copy of a scheme compiler, e.g. the chicken scheme compiler. The latter is available at
http://www.call-with-current-continuation.org
Unpack, build and install it.
Then return to where You left mother and type
make
followed by
make install
To run the current version for test purposes, try
c -e l/pl0/a/test <input.pl0
and see how the compiler happily does not crash!
