The ability to extend a programming language with new constructs is a valuable tool. With it, system designers can grow a language towards their problem domain, enhance productivity and ease maintenance. JSE is an extension to the Java language that allows Java programmers to define new syntactic constructs. The design is based on the Dylan macro system (e.g., rule-based pattern matching and hygiene), but exploits Java's compilation model to offer a full procedural macro engine. In other words, syntax expanders may be implemented in, and so use all the facilities of, the full Java language.
[The latest version of the JSE documentation may be found at http://jse.sourceforge.net/.]
jse-0.20.zip, jse-0.20.tar.gz - version 0.20.
jse-0-14.tar.gz - the first release (by Jonathan Bachrach and Keith Playford).
JSE is currently distributed as a gzipped tar file and as a zip file. Unpack the distribution in a directory on your filesystem. This will create the following hierarchy:
jse-<version>/ | |
LICENSE | the license terms |
build.xml | the ant build file used to build the whole distribution |
index.html | this page |
doc/ | documentation |
examples/ | example macros |
lib/ | library jars needed to build and use JSE |
src/ | source code |
See the JSE Ant task documentation for how to install JSE for use with Ant.
The best place to start is by looking at the examples.
The original paper by Jonathan Bachrach and Keith Playford.
JSE Ant task
Examples
TO DO (features not yet implemented)
Javadoc (for JSE developers)
Volunteers are always welcome. JSE is developed on sourceforge, so please use use the tools provided.