ART is a tool for building software language processors from compact engineering specifications. It is suitable both for small Domain Specfic Languages (DSLs) and for fully-featured standard programming languages.
ART stands for Ambiguity Resiliant Translation, which is our term for systems that allow ambiguities to be ‘carried forward’ in the translation process to the point where they are most naturally resolved. In practice this means that syntax is defined using unrestricted general context free grammars supplemented with choosers which allow ambiguities to be progressively suppressed. The underlying parsing technologies are our efficient GLL and MGLL generalised top down algorithms.
Semantics – the meaning of your language – may be specified using pure attribute grammars, procedural actions, term rewriting and direct interpetation of Structural Operational Semantics rules. ART generated applications often use a mixture of techniques.
ART has a built in value system which provides common programming language datatypes and operations and a plugin hook which allows arbitrary external Java code to be accessed.
Using ART
ART is written in Java and will run on any system that supports Java, including Linux, Apple macOS and Microsoft Windows based machines.
A pre-built JAR file, sources, materials for our undergraduate course and artefacts associated with our research publications may be downloaded here.
Our research publications are accessible here.
Questions, comments and bug reports should be emailed to Adrian.
Who we are
ART is developed by Adrian Johnstone and Elizabeth Scott of the Centre for Programming Languages and Systems at Royal Holloway, University of London.
Support
We gratefully acknowledge the major support of these organisations.