|n.||1.||(Min.) A mineral consisting, like quartz, of silica, but inferior to quartz in hardness and specific gravity.|
|Noun||1.||opal - a translucent mineral consisting of hydrated silica of variable color; some varieties are used as gemstones|
|1.||Opal - A DSP language.|
["OPAL: A High Level Language and Environment for DSP boards on PC", J.P. Schwartz et al, Proc ICASSP-89, 1989].
|2.||Opal - 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.||Opal - 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.||Opal - A language for compiler testing said to be used internally by DEC.|
|5.||Opal - 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
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.
An overview is given in "OPAL: Design And Implementation of an Algebraic Programming Language".