Related articles |
---|
code generator generators? mike@vlsivie.tuwien.ac.at (1991-09-05) |
Re: code generator generators? pardo@gar.cs.washington.edu (1991-09-06) |
Re: code generator generators? horst@techfak.uni-bielefeld.de (1991-09-09) |
Re: code generator generators? bill@hcx2.ssd.csd.harris.com (1991-09-09) |
Re: code generator generators? shuksan!scott@bcstec.ca.boeing.com (1991-09-09) |
Re: code generator generators? clifton_r@zon.verifone.com (Clifton Royston HNL (808)625-3234) (1991-09-12) |
Re: code generator generators? jourdan@minos.inria.fr (1991-09-16) |
Re: code generator generators? robichau@freedom.msfc.nasa.gov (1991-09-17) |
Newsgroups: | comp.compilers |
From: | "Clifton Royston HNL (808)625-3234" <clifton_r@zon.verifone.com> |
Keywords: | code, question |
Organization: | VeriFone Inc., Honolulu HI |
References: | 91-09-012 |
Date: | 12 Sep 91 12:13:10 HST |
In article 91-09-012, mike@vlsivie.tuwien.ac.at (Michael Gschwind - EECS) writes:
> What's the current state of research on code generator generators? While the
> front end side seems to be fairly well automated by now, back end
> generation still seems to be an unresolved issue. There are only two systems
It depends partly on what you mean by back-end generation. I can see two
alternate definitions which might seem reasonable:
1) Instead of writing specific instructions to generate machine code for
each intermediate-code construct, you write a table in some special format
which is "compiled" into executable code to pattern-match and generate the
machine code.
2) You write a table which characterizes the instruction set of the
target machine, and some tool determines how best to match those
instructions to your intermediate code.
The distinction here is pretty hazy, but I think there is a difference
between _characterizing_ the target machine code, as in (2), and
_specifying_ matches, as in (1). I would imagine most of the above
described systems fall somewhere in between the two extremes.
Having said this, our organization uses the Amsterdam Compiler Kit, which
employs a back-end generator falling somewhere between (1) and (2). The
input text file contains some sections characterizing the target machine
instructions (especially in terms of registers used, side-effects, etc.)
and some which specify how you want them matched to the intermediate code.
The intermediate code for this system is a stack-machine p-code, so the
code generation proceeds both by matching sequences of instructions and by
matching the simulated stack contents (or "fake-stack".)
Since I don't myself work with the code-generation part of the system, I
have probably got it a little wrong and oversimplified, but thought this
would be of interest. BTW, I would not claim the Amsterdam Compiler Kit is
the latest word; it has been around since the early-middle '80s.
-- Clifton Royston clifton_r@zon.verifone.com
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.