Related articles |
---|
extensible compilers mtrofimov@glas.apc.org (1998-03-18) |
Re: extensible compilers ichisugi@etl.go.jp (ICHISUGI Yuuji) (1998-03-20) |
Re: extensible compilers pardo@cs.washington.edu (1998-03-20) |
Re: extensible compilers bruce@cenderis.demon.co.uk (Bruce Stephens) (1998-03-22) |
extensible compilers mtrofimov@glas.apc.org (1998-03-22) |
Re: extensible compilers ndc@alum.mit.edu (N. D. Culver) (1998-03-24) |
Re: extensible compilers ndc@alum.mit.edu (N. D. Culver) (1998-04-03) |
From: | pardo@cs.washington.edu (David Keppel) |
Newsgroups: | comp.compilers |
Date: | 20 Mar 1998 01:27:08 -0500 |
Organization: | Computer Science & Engineering, U of Washington, Seattle |
References: | 98-03-155 |
Keywords: | syntax, optimize |
Michael Trofimov <mtrofimov@glas.apc.org> wrote:
>Do you know anyhow about extendsiable compilers?
our moderator writes:
>[Extensible languages were fashionable in the mid 1970s. ...]
At least one out of the three of us is confused about terminology.
Our moderator is correct about extnsible _languages_ but the question
was at least nominally about extensible _compilers_, rather than
compilers for extensible languages.
See, for example:
%A Luis H. Rodriguez Jr.
%T Coarse-Grained Parallelism Using Metaobject Protocols
%I Xerox Palo Alto Research Center (PARC)
%R SSL-91-06 (Also an MIT Master's Thesis)
%D 1991
%W rodriguez@parc.xerox.com
%X Alternatives for parallelizing compiler: smart compiler,
directives. Smart compilers are never smart enough. Directives fail
to be expressive enough. Use a general-purpose programming language
(the same one recognized by the compiler) to write metaobject protocol
code that is incorporated in to the compiler to perform
parallelization on an application-specific basis.
Details the MOP and walks through an example (n-body) in detail.
For example, you write C code for an N-body problem and then you also
write an optimizer pass that is called using a fixed protocol (e.g.,
it rewrites a tuple list), and the optimizer pass is allowed to
perform application-specific transformations. The optimizer pass is
compiled and dynamically linked into the compiler. The transformation
augments the normal optimizer phases; it doesn't change the semantics
of the original N-body problem code, but it does help the compiler
provide a better implementation.
Note that at no time has the source _language_ been extended. The
compiler has been extended.
I'm not up-to-date on the work, but Gregor Kiczales has a group at
Xerox PARC that's looked at this area and a bunch of related ones, see
`http://www.parc.xerox.com/spl/projects/oi/'.
;-D on ( Ex Tensible ) Pardo
[Oh, sorry, you're right, that's different. But wow, what a debugging
nightmare that must be. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.