A history of the Oz multiparadigm language
2020 (English)In: Proceedings of the ACM on Programming Languages, E-ISSN 2475-1421, Vol. 4, no HOPL, article id 83Article in journal (Refereed) Published
Abstract [en]
Oz is a programming language designed to support multiple programming paradigms in a clean factored way that is easy to program despite its broad coverage. It started in 1991 as a collaborative effort by the DFKI (Germany) and SICS (Sweden) and led to an influential system, Mozart, that was released in 1999 and widely used in the 2000s for practical applications and education. We give the history of Oz as it developed from its origins in logic programming, starting with Prolog, followed by concurrent logic programming and constraint logic programming, and leading to its two direct precursors, the concurrent constraint model and the Andorra Kernel Language (AKL). We give the lessons learned from the Oz effort including successes and failures and we explain the principles underlying the Oz design. Oz is defined through a kernel language, which is a formal model similar to a foundational calculus, but that is designed to be directly useful to the programmer. The kernel language is organized in a layered structure, which makes it straightforward to write programs that use different paradigms in different parts. Oz is a key enabler for the book Concepts, Techniques, and Models of Computer Programming (MIT Press, 2004). Based on the book and the implementation, Oz has been used successfully in university-level programming courses starting from 2001 to the present day.
Place, publisher, year, edition, pages
Association for Computing Machinery , 2020. Vol. 4, no HOPL, article id 83
Keywords [en]
Computer programming, Concurrent programming, Dataflow, Distributed programming, Functional programming, Lazy evaluation, Logic programming, Multiparadigm programming, Programming education, Calculations, Concurrent constraint, Concurrent logic programming, Constraint Logic Programming, Foundational calculus, Layered Structures, Multi-paradigm languages, Programming course, Programming paradigms, PROLOG (programming language)
National Category
Natural Sciences
Identifiers
URN: urn:nbn:se:ri:diva-48928DOI: 10.1145/3386333Scopus ID: 2-s2.0-85091278047OAI: oai:DiVA.org:ri-48928DiVA, id: diva2:1475972
2020-10-132020-10-132023-08-25Bibliographically approved