Oz is a concurrent language providing for functional, object-oriented, and constraint programming. This document defines how Oz program text is transformed into an Oz Core program. Oz Core is a sublanguage of Oz designed to minimize syntactic complexity. Oz Core serves as the base for the definition of the semantics of Oz.
Technically, Oz Core allows to use several programming paradigms, including functional, constraint and object-oriented programming. Being a purely relational language, however, Oz Core does not provide easy notational access to programming methods from these paradigms, making it hard to fully exploit the capacities of the language.
It is such ergonomic considerations that lead to the development of the Oz Notation, where syntactic extensions provide convenient constructs for functional and object-oriented programming. The semantics of these extensions is defined in this document by their stepwise translation to Oz Core.