|Re: Pros and cons of high-level intermediate languages email@example.com (1992-07-29)|
|Requirements for IL's firstname.lastname@example.org (1992-07-31)|
|Re: Requirements for IL's email@example.com (1992-08-03)|
|From:||firstname.lastname@example.org (Hans Boehm)|
|Date:||Mon, 3 Aug 1992 16:35:46 GMT|
email@example.com (Jonathan Eifrig) writes:
> This is basically C, with the addition of a garbage-collected
>heap, and the elimination of the run-time stack.
I don't understand this proposal. If you get rid of the run-time stack,
how does a compiler get it back? Presumably, I still want to be able to
compile C or Pascal to this IL with reasonable performance. In many
environments (e.g. memory limited targets, probably machines with high
cache-miss penalty), heap allocating everything is a disaster. (If C is
the source language, it's probably an unconditional disaster, since it's
hard to move objects.) Having the front end introduce an explicit stack
data structure is probably a mistake, since what goes in the stack depends
on register availability. Having the back end infer what goes on the
stack probably makes performance too unpredictable for many applications.
Nonreturning calls seem like a good idea, but not as the only call
mechanism. Did I miss something here?
Return to the
Search the comp.compilers archives again.