1. A DSP
["OPAL: A High Level Language and Environment for DSP boards on PC", J.P. Schwartz et al, Proc ICASSP-89, 1989].
2. The language of the object-oriented database GemStone
["Making Smalltalk a Database System", G. Copeland et al, Proc SIGMOD'84, ACM 1984, pp.316- 325].
3. A simulation
language with provision for stochastic variables
. An extension of Autostat
["C-E-I-R OPAL", D. Pilling, Internal Report, C.E.I.R. Ltd. (1963)].
4. A language for compiler testing said to be used internally by DEC
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
. 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
, 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
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.
An overview is given in "OPAL: Design And Implementation of an Algebraic Programming Language".