Related articles |
---|
[2 earlier articles] |
Re: Native Code Generation from Abstract Stack Machine m.dentico@no-spam.it (Massimo Dentico) (2004-03-02) |
Re: Native Code Generation from Abstract Stack Machine bill@qswtools.com (Bill Cox) (2004-03-06) |
Re: Native Code Generation from Abstract Stack Machine peter@javamonkey.com (Peter Seibel) (2004-03-06) |
Re: Native Code Generation from Abstract Stack Machine peter@javamonkey.com (Peter Seibel) (2004-03-11) |
Re: Native Code Generation from Abstract Stack Machine samiam@moorecad.com (Scott Moore) (2004-03-11) |
Re: Native Code Generation from Abstract Stack Machine eliotm@pacbell.net (Eliot Miranda) (2004-03-11) |
Re: Native Code Generation from Abstract Stack Machine bonzini@gnu.org (2004-03-19) |
From: | bonzini@gnu.org (Paolo Bonzini) |
Newsgroups: | comp.compilers |
Date: | 19 Mar 2004 23:55:30 -0500 |
Organization: | http://groups.google.com |
References: | 04-02-179 04-03-055 |
Keywords: | code |
Posted-Date: | 19 Mar 2004 23:55:29 EST |
> Independently, and without knowledge of Peter Deutsch's scheme, Ian
> Piumarta did a native code compiler for Smalltalk that he wrote up in
> his thesis at Manchester University, which is called something like
> "Deferred Code generation in a Smalltalk-80 Compiler". Its a very
> similar idea.
I recently used a very similar scheme to translate Java bytecodes to
Smalltalk bytecodes, deferring the compilation of arguments until
either the end of the basic block or a method invocation. Rather than
optimization, I also needed it for correctness, to add a receiver in
front of the arguments of an invokestatic bytecode (Java has the
receiver implicit, while Smalltalk makes it explicit).
I had also used it for GNU Smalltalk's JIT compiler, which was more or
less a conversion of Ian's thesis to work on basic blocks (Ian used
an abstract syntax tree with if conditionals and while loops).
After a few years using it for several different projects, however, it
seems pretty straightforward to me, definitely not worth keeping it
secret; I doubt that there exist JIT compilers that do not reconstruct
something resembling a parse tree (also AOStA, right? :-).
Paolo
Return to the
comp.compilers page.
Search the
comp.compilers archives again.