APL-99

Supervisor: David Watt

Abstract

During the 1970s and 1980s, APL was a very popular language for scientific and statistical calculations. Its simple syntax made it easy to learn, and its rich repertoire of scalar and array operators made it possible to express remarkably complex calculations in a few lines of code.

In APL the only types of values are scalars (numbers) and arrays (of numbers). APL is dynamically-typed, so the same variable may contain a number at one time and an array at another time. Operators generally work over both scalars and arrays. For example:

Moreover, the programmer may declare new operators (functions), with either one or two parameters.

The aim of this project is to design and implement a modern successor, called APL-99. Initially the language can be very simple: literals, variables, a small repertoire of operators, assignment statements, and operator declarations. The language can be extended later if time permits. (The supervisor will provide a lot of help during the design stage.)

The implementation should be interpretive (like all implementations of APL itself). The program should first be parsed and translated into a suitable internal representation. The latter should then be interpreted.

Resources

Software: any suitable programming language such as Ada, C, or Java.