Related articles |
---|
Static vs. dynamic analysis chuck_lins@gateway.qm.apple.com (Chuck Lins) (1992-04-24) |
Re: Static vs. dynamic analysis tmb@ai.mit.edu (1992-04-26) |
Re: Static vs. dynamic analysis chambers@cs.washington.edu (1992-04-26) |
Re: Static vs. dynamic analysis pardo@cs.washington.edu (1992-04-27) |
Re: Static vs. dynamic analysis alex.zatsman@spd.analog.com (1992-05-11) |
Re: Static vs. dynamic analysis stephen@estragon.uchicago.edu (1992-05-12) |
Newsgroups: | comp.compilers |
From: | chambers@cs.washington.edu (Craig Chambers) |
Keywords: | optimize, experiment |
Organization: | Compilers Central |
References: | 92-04-131 |
Date: | Sun, 26 Apr 1992 22:03:53 GMT |
In article 92-04-131 Thomas M. Breuel writes:
|> I believe that runtime code generation and runtime code optimization will
|> become very important in the not too distant future.
...
|> I think it would be a nice (M.A., Ph.D.) project to prototype and
|> demonstrate the value of such techniques with a (mostly portable) dynamic
|> optimizer for CommonLisp; such a system would insert some extra code into
|> functions to keep simple statistics about function calls and runtime types
|> and generate type-specialized and inlined versions of functions as needed
|> (invoking the CommonLisp compiler on-the-fly). Any takers?
This line of research has been and is still being pursued as part of the
implementation of the Self language, a Smalltalk descendant. The Self
compiler is executed automatically at run-time when needed to compile a
method, and it uses both run-time information and "static" analysis to
guide its optimizations. This work has been reported in recent OOPSLA's
and PLDI's and is described in detail in my Ph.D. thesis. Current and
future work includes dynamically adapting the compiler's optimizations to
the usage patterns within a Self program. Urs Hoelzle is one researcher
taking this approach, and an early description of his work appears in
ECOOP'91.
This research should apply equally well to CommonLisp.
-- Craig Chambers
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.