H ? « »

Language peer sets for OPAL:
Designed 1993
1990s languages
Fifth generation
Post-Cold War
Genus Goguen algebra
Specialised Languages
Goguen algebra
Theoretical incl category based
Goguen algebra/1993
Theoretical incl category based/1993
Goguen algebra/Germany
Theoretical incl category based/Germany
Specialised Languages
Specialised Languages/1993
Specialised Languages/de


Algebraic functional language 

alternate simple view
Country: Germany
Designed 1993
Published: 1994
Genus: Goguen algebra
Sammet category: Specialised Languages

Technical University of Berlin.

Algebraic programming language which integrates both concepts of algebraic specification and functional programming. Strongly-typed, higher-order, strict applicative language, with algebraic specification. Uses parameterized structures rather than polymorphism.

Opal is a strongly typed, higher-order, strict, pure functional language, and as such can be classified alongside ML, Haskell, and other modern functional programming languages. However, the language also has a distinctive algebraic flavour in the tradition of languages such as CIP-L, Obj, and others.

The language includes what we consider to be mandatory for research and teaching on:

  • optimizing compilation of algebraic languages

  • formal programming methodology

  • methodology of implementing large software systems

The following characteristics give an overview of the language design:

  • Modularization by means of separated signature and implementation parts of structures .

  • Selective imports of items from structures.

  • Parameterized structure, with support to shortcut the notation of actualization morphisms, or to let them be inferred by the compiler.

  • Free constructor views on sorts, which allow pattern-based function definitions in spite of quite different implementations.

  • Unrestricted overloading of names, considering complex contexts for the overloading resolution.

  • Puristic scheme language with no built-in data types (except of booleans and denotations).

Opal-1 and its predecessor Opal-0 have been used for some time at the Technical University of Berlin in basic and advanced computer science courses, as well as in several research projects. Opal has been used to implement its own compiler.

Related languages
OPAL OPAL-0   Implementation
OPAL OPAL2   Successor

  • Didrich, Klaus; Fett, Andreas; Gerke, Carola; Grie (1994) Didrich, Klaus; Fett, Andreas; Gerke, Carola; Grieskamp, Wolfgang; Pepper, Peter "OPAL: design and implementation of an algebraic programming language" pp228-244
          in [Proceedings] (1994) Proceedings of the international conference on Programming languages and system architectures, April 1994, Zurich, Switzerland
  • Cerioli et al (1997) Cerioli, Maura; Gogolla, Martin; Kirchner, Helene; Bruckner, Bernd Krieg; Qian, Zhenyu; Wolf, Markus "Algebraic System Specification and Development - Survey and Annotated Bibliography" Second Edition Compass Group Bremen 1997 Abstract ps Extract: The Opal Compilation System Extract: OPAL Extract:
          in [Proceedings] (1994) Proceedings of the international conference on Programming languages and system architectures, April 1994, Zurich, Switzerland
    Search in: Google  Google scholar  World Cat  Yahoo  Overture  DBLP  Monash bib  NZ  IEEE  ACM portal  CiteSeer  CSB  ncstrl  jstor  Bookfinder