Polyglot is a highly extensible compiler front end for the Java programming language. 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.
|Operating Systems||Unix POSIX Linux Windows Cygwin|
Release Notes: The dataflow framework was changed to add functionality. CFGs now have two nodes per term, one representing the "entry" into that term, another the "exit". Extensions will have to be updated to work with this new framework. See doc/DATAFLOW_2_0.txt for a more detailed explanation of the changes. Miscellaneous bugs were fixed.
Release Notes: Miscellaneous bugfixes. An assumption that return statements occur only within methods has been fixed. A copy(NodeFactory) method has been added to the Node interface to generate a new version of a node with a different node factory.
Release Notes: CodeNode and CodeBlock were added as a super-interfaces of CodeDecl that are not ClassMembers. DataFlow was changed to use CodeNode. MemberInstance was removed as a super-interface of CodeInstance and ProcedureInstance. The FunctionInstance interface was added: procedures with return types that are not methods. Miscellaneous bugs were fixed.