Polyglot extensible compiler framework release 1.1.1

Andrew Myers andru at cs.cornell.edu
Mon Dec 29 14:34:18 EST 2003


We are pleased to announce the availability of version 1.1.1 of the
Polyglot extensible compiler framework for Java. Polyglot is a complete
Java 1.4 compiler front end, implemented as a Java class library that
is easily extended through inheritance to create a modified compiler.
Polyglot is useful for implementing domain-specific languages, for
exploring language design ideas, and for adding new optimizations or
analyses to a Java compiler.

Polyglot offers some advantages beyond a cleanly written Java front
end.  Extension code can be kept entirely separate from the (unmodified)
Polyglot library, and the amount of extension code tends to scale well
with the degree of modification to Java.  Extension languages can
be cleanly extended further using the same methodology.  The design
features that make this possible are described in the following paper:

    Nathaniel Nystrom, Michael R. Clarkson, Andrew C. Myers.
    Polyglot: An Extensible Compiler Framework for Java.  12th Int'l
    Conference on Compiler Construction, Apr. 2003.  LNCS 2622, pp.138-152.
    http://www.cs.cornell.edu/andru/papers/polyglot.pdf

This is the fifth release of Polyglot, incorporating many bug fixes and
extensions based on user feedback and testing.  It is released under
LGPL, which is relatively permissive.  Polyglot is currently being
developed and maintained by Nate Nystrom and Stephen Chong.

The Polyglot framework has been used to implement more than a dozen
major and minor extensions to Java. These extensions include new
expression forms, new type system features, new compiler passes, and
new static analyses. Major extensions include the Jif language, which
adds types for information flow to Java; the PolyJ language, which
adds parameterized types; and the JMatch language, which adds pattern
matching and iterators.

The Polyglot web site is located at

  http://www.cs.cornell.edu/projects/polyglot

-- Andrew Myers


More information about the Types-list mailing list