| GCC is not the only production-level compiler which uses CGG(code generator
generator)/MD(machine description) approach.
The famous pcc could also be a kind of CGG. Its target machine information
are specified by a template set and procedures.
There are several other (production-level???) MD/CGG systems.
One which authors claim they use them in their compiler products is:
o Apollo's ISCSL(Instruction Selection Component Specification Language)
Please see "Dynamic programming and industrial-strength instruction
selection: Code generation by tiring, but not exhaustive search", J.Yates
et al, SIGPLAN Notices, V23, #10, Oct'89.
Another (famous?) systems I know are:
o Prime's Up-Down-Parser
Please see "Up-Down Parsing with Prefix Grammars", P.K.Turner,
SIGPLAN Notices, V21, #12, Dec'86, and
"Limitations of Graham-Glanville Style Code Generation", D.Spector,
SIGPLAN Notices, V22 #2, Feb'87
I do not know if this system is used by Prime's product or not.
o EPIC LISP
Please see "EPIC - A Retargetable, Highly Optimising Lisp Compiler",
R.R.Kessler et al, ACM SIGPLAN Notices V21, #7, Jul'86.
This is an experimentation system.
Yet another system I and my colleagues are currently developing is a
Common ESP(CESP) Machine Code Generator system. CESP is an object-oriented
Prolog language. Its CG is generated from a MD by a CGG. A prototype system
achieved more than 100 KLIPS/sun3-60 of append/reverse benchmark programs.
Our system will be available over MC68020(SUN3...), SPARC, MC88000, R2000,
and VAX architectures next year. It may possibly ported to Intel machines
and IBM main-frame crones in future. Papers will be available next year.
|