Confidence in Java programming
The ART parser generator is one of a new breed of compiler generation tools which provides efficient generalised parsing. This means that language designers have complete freedom to specify syntax in a way that supports downstream processes rather than having to shoehorn their ideas into the constraints imposed by current near-deterministic parser generators like Bison and ANTLR.
ART was developed at Royal Holloway and is based on the new GLL algorithm invented here by Elizabeth Scott and Adrian Johnstone.
ART presently runs as a standalone tool, with some built in visualisation capabilities. It is written in Java and outputs parsers written in Java, C++ and (potentially) pretty much any other language. We would like to fully integrate ART with Eclipse, so that users familiar with the Eclipse framework can quickly get up to speed with our ideas.
A parser generator offers some interesting special opportunities for Eclipse integration: for instance we can extract keywords from a user’s specification and automatically generate syntax-highlighting editors for Eclipse, both for the specification and the actual language itself.
We have a prototype Eclipse plugin written by Joe Reddington that you can study so as to learn how to engineer an Eclipse plugin. In fact you’ll probably need to do this since there is rather little information out there on plugin construction, especially for the kind of meta-tooling that we are interested in.
You will be working directly under Adrian Johnstone’s supervision, with input from Elizabeth Scott and Thomas van Binsbergen, who is developing a semantics backend for ART that we would also like to access from the plugin. Apart from learning a great deal about language development and meta-programming which will be very helpful if you decide to purse our third year course (CS3480 Software Language Engineering) you will also learn how to build plugins for Eclipse which is a marketable skill that will add to your CV.
You need to be a confident Java programmer who has used Eclipse. It would be helpful if you had some experience of the JavaFX 8 user interface framework and of programming with threads.