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!

