This paper describes a new functional programming language called PEBBLE, which gives a systematic treatment of data types, abstract data types, and modules, and which includes polymorphic functions and module linkings. It is based on a typed lambda calculus, the authors’ experience with an extension of MESA called CEDAR, and also on some very recent work in this area.
The paper starts with a well-written introduction motivating the work, a useful informal description of PEBBLE, and some important applications, such as how to program interfaces and implementations, abstract data types, generic types, union types, recursive types. Then follows a formal description of a BNF-syntax and of a precise operational semantics in the form of a set of inference rules, allowing a clean separation between type checking and evaluation. A compact PASCAL-like program implementing a deterministic evaluation of the inference rules is given.
The paper ends with some open problems requiring further research, such as the introduction of an assignment (which is thought to be easy), of an exception handling mechanism, and of concurrency. In conclusion, the paper is well motivated and well written. It is worthwhile to everyone interested in recent developments in this subject area.