The Oz 2.0 Documentation
If you can read this, your browser provides insufficient support for style
sheets. The visual presentation of this document will suffer.
Getting Started
Reference Material
This tutorial introduces the programming language Oz 2. Oz 2 is a
multiparadigm programming language. It is a high level programming
language that is designed for advanced, concurrent, networked, soft
real-time, and reactive applications. Oz 2 combines the salient
features of object-oriented programming by providing state, abstract
data types, classes, objects and inheritance. It provides features of
functional programming by providing compositional syntax, first class
procedures, and lexical scoping. It provides the salient features of
logic and constraint programming such as logic variables, constraints,
disjunctions, and programmable search mechanisms. Oz 2 is a concurrent
language where users can create dynamically any number of sequential
threads. Oz 2 threads are data-flow whose execution proceeds only when
data dependencies on variables involved are resolved.
The tutorial covers most of the concepts of Oz 2 in an informal
way. It is a suitable as first reading for programmers that want to be
able to start quickly writing applications without any particular
theoretical background. The document is deliberately informal and,
thus complements other DFKI Oz 2 documentations.
The latest version of this document and lectures on Oz can be found
at the author's home page.
Available as postscript or pdf.
This document is an introduction to constraint
programming in Oz. We restrict our attention to
combinatorial problems that can be stated with
variables ranging over finite sets of nonnegative
integers. Problems in this class range from
puzzles to real world applications as diverse as
scheduling, ware house allocation, configuration
and placement.
Available as postscript or pdf.
Oz is a concurrent language providing for functional,
object-oriented, and constraint programming: a true multiparadigm
language. These paradigms are supported by a semantically minimal
kernel language, which, however, becomes verbose quickly for programs of
realistic size. It was a crucial design decision to provide syntactic
support for these programming paradigms at the user language level.
A drawback of this approach is the notational complexity of the
resulting language. This document gives a brief overview over
programming concepts and syntactic forms used in Oz by means of concise
examples. It is not intended as a comprehensive language definition
or tutorial but aims at being a programmer's companion providing quick
help and pointers to further documentation.
Available as postscript or pdf.
This paper describes how to do window programming in DFKI Oz. The
DFKI Oz window interface is based on the Tk toolkit which in turn is
based on the script language Tcl. It provides a high level
abstraction of Tk widgets allowing for object-oriented and
concurrent window programming. A generic translation scheme from Oz
values to Tcl/Tk commands provides for minimality and flexibility on
the Oz side.
The Tcl/Tk interface is implemented in Oz using the open programming
facilities and is an example of how to connect an external and
sequential agent to Oz.
Available as postscript or pdf.
Oz is a concurrent language providing for functional, object-oriented,
and constraint programming. This document explains how to program open
applications in the DFKI Oz 2.0 System.
Open applications need access to the rest of the computational world by
exchanging data with it. DFKI Oz 2.0 provides classes to handle files,
sockets, and processes. It features a module giving access to important
and portable operating system functions.
The document contains both introductory material including several
examples as well as referece material.
Available as postscript or pdf.
Oz is a concurrent language providing for functional, object-oriented,
and constraint programming. The Oz Standard Modules are part of the Oz
language specification and contain procedures that are made generally
available to the programmer. A thorough knowledge of the Oz Standard
Modules is highly recommended for effective programming in Oz.
The Oz Standard Modules provide the basic operations on the Oz values
and a set of procedures whose use makes for more elegant and readable
programs. They provide high-level access to the search combinator, to
programming with finite domain constraints, to programming with threads,
to real-time programming and to data structures such as arrays and
dictionaries.
Available as postscript or pdf.
DFKI Oz is an interactive implementation of Oz, a high-level
programming language designed for concurrent symbolic computation.
Its performance is competitive with commercial Prolog and Lisp
systems. DFKI Oz is available for many platforms running Unix/X and
Windows 95/NT.
This documents describes the features of DFKI Oz. DFKI Oz provides
a programming interface based on GNU Emacs, the Browser as a
concurrent tool to visualize values, the Explorer as a graphical and
interactive tool to visualize and analyze search trees, the Panel as
a graphical tool to visualize and control important parameters of
the Oz system, a programmers interface to these system parameters,
an incremental compiler, support for stand-alone applications, a
high performance emulator with a garbage collector, an interface to
C and C++. The installation of DFKI Oz is very simple.
Available as postscript or pdf.
The Constraint Propagator Interface of DFKI Oz
Tobias Müller and Jörg Würtz
This document explains the steps to be taken to implement
finite domain constraints by propagators using the constraint propagator
interface of DFKI Oz.
The first part of the document is a tutorial explaining the concepts of
the interface by the means of examples. We will implement a variety of
propagators and give the complete source code.
The second part of the document is a reference manual describing each
abstraction provided by the interface.
Available as postscript or pdf.
Oz is a concurrent language providing for functional, object-oriented,
and constraint programming. This report 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.
Available as postscript or pdf.
Last updated: Wed Apr 29 19:02:15 MET DST 1998