Re: code generator generators?

"Clifton Royston HNL (808)625-3234" <clifton_r@zon.verifone.com>
12 Sep 91 12:13:10 HST

          From comp.compilers

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)
| List of all articles for this month |
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
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.