|
PolyglotA compiler front end framework for
|
download documentation mailing lists developers |
Download Polyglot[Change log]Polyglot 2.x[Show all]
Polyglot 1.x[Show all]
Documentation
Polyglot is a highly extensible compiler front end for the Java programming language. It is implemented as a Java class framework using design patterns to promote extensibility. Using Polyglot, language extensions can be implemented without duplicating code from the framework itself. Polyglot has been used to implement domain-specific languages, to explore language design ideas, to simplify Java for pedagogical purposes, and for various code transformations such as optimization and fault injection. Polyglot has been used for both major and minor language extensions; our experience suggests that the cost of implementing an extension scales well with the degree to which it modifies Java. Polyglot compiles and runs on (at least) Linux, Solaris, Windows, and Mac OS X. Ant and the JFlex scanner generator are required to build it. On Windows, you will also need Cygwin. As of release 2.5, Polyglot supports both Java 1.4 and Java 5. Java 5 features such as generics and autoboxing are supported. Support for Java 5 is provided as a Polyglot extension, but other Polyglot extensions can build on either version of the language, and can generate either kind of code as output. Polyglot includes PPG, an extensible LALR parser generator based on the CUP LALR parser generator for Java (extended with improved debugging support). Mailing lists
|
|||
Some Polyglot-based projects
|
![]() A partial family tree |
||
Polyglot developers |
|||
|
The Polyglot project is currently supervised by:
The current Polyglot developers can be contacted at polyglot-developers-L@cornell.edu. Please get in touch if you are interested in contributing to Polyglot. |
Many other people have contributed to Polyglot, including but not limited to:
|
||
|
The development of the Polyglot project has been supported by a number of funding sources, including DARPA Contract F30602-99-1-0533, monitored by USAF Rome Laboratory, ONR Grant N00014-01-1-0968, NSF Grants CNS-0208642, CNS-0430161, and CCF-0133302, an Alfred P. Sloan Research Fellowship, and an Intel Research Ph.D. Fellowship. | |||