2. The language of the object-oriented database GemStone.
["C-E-I-R OPAL", D. Pilling, Internal Report, C.E.I.R. Ltd. (1963)].
5. A functional programming language designed at the Technische Universitaet Berlin as a testbed for the development of functional programs. OPAL integrates concepts from Algebraic Specification and Functional Programming, which favour the (formal) development of (large) production-quality software written in a purely functional style.
The core of OPAL is a strongly typed, higher-order, strict applicative language which belongs to the tradition of Hope and ML. The algebraic flavour of OPAL is visible in the syntactical appearance and in the preference of parameterisation to polymorphism.
OPAL supports: information hiding - each language unit is divided into an interface (signature) and an implementation part; selective import; parameterised modules; free constructor views on sorts, which allow pattern-based function definitions despite quite different implementations; full overloading of names; puristic scheme language with no built-in data types (except Booleans and denotations).
OPAL and its predecessor OPAL-0 have been used for some time at the Technische Universitaet Berlin in CS courses and for research into optimising compilers for applicative languages. The OPAL compiler itself is writte entirely in OPAL.