Paradigm | multi-paradigm: logic, functional, imperative, object-oriented, constraint, distributed, concurrent |
---|---|
Designed by | Gert Smolka, his students |
Developer | Mozart Consortium |
First appeared | 1991 |
Stable release |
Oz 1.4.0 (final), Mozart 2 / 3 July 2008
|
Typing discipline | dynamic |
License | MIT X11 |
Website | mozart |
Major implementations | |
Mozart Programming System | |
Dialects | |
Oz, Mozart | |
Influenced by | |
Erlang, Lisp, Prolog | |
Influenced | |
Alice, Scala |
Oz is a multiparadigm programming language, developed in the Programming Systems Lab at Université catholique de Louvain, for programming language education. It has a canonical textbook: Concepts, Techniques, and Models of Computer Programming.
Oz was first designed by Gert Smolka and his students in 1991. In 1996, development of Oz continued in cooperation with the research group of Seif Haridi and Peter Van Roy at the Swedish Institute of Computer Science. Since 1999, Oz has been continually developed by an international group, the Mozart Consortium, which originally consisted of Saarland University, the Swedish Institute of Computer Science, and the Université catholique de Louvain. In 2005, the responsibility for managing Mozart development was transferred to a core group, the Mozart Board, with the express purpose of opening Mozart development to a larger community.
The Mozart Programming System is the primary implementation of Oz. It is released with an open source license by the Mozart Consortium. Mozart has been ported to different flavors of Unix, FreeBSD, Linux, Windows, and OS X.
Oz contains most of the concepts of the major programming paradigms, including logic, functional (both lazy evaluation and eager evaluation), imperative, object-oriented, constraint, distributed, and concurrent programming. Oz has both a simple formal semantics (see chapter 13 of the book mentioned below) and an efficient implementation. Oz is a concurrency-oriented language, as the term was introduced by Joe Armstrong, the main designer of the Erlang language. A concurrency-oriented language makes concurrency easy to use and efficient. Oz supports a canonical graphical user interface (GUI) language QTk.