Re: extensible compilers (David Keppel)
20 Mar 1998 01:27:08 -0500

          From comp.compilers

Related articles
extensible compilers (1998-03-18)
Re: extensible compilers (ICHISUGI Yuuji) (1998-03-20)
Re: extensible compilers (1998-03-20)
Re: extensible compilers (Bruce Stephens) (1998-03-22)
extensible compilers (1998-03-22)
Re: extensible compilers (N. D. Culver) (1998-03-24)
Re: extensible compilers (N. D. Culver) (1998-04-03)
| List of all articles for this month |

From: (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 <> 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
%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

;-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.