Re: extensible compilers

pardo@cs.washington.edu (David Keppel)
20 Mar 1998 01:27:08 -0500

          From comp.compilers

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




--


Post a followup to this message

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