The Oz Standard Modules


General Remarks

The Standard Modules for Oz 2 have been carefully redesigned to have a simpler structure and to deliver more performance while at least retaining the functionality present in Oz 1.

Besides of the changes outlined on this page, several small changes have been made. See here for more information.

Global Changes

The boolean test procedures (e.g., IsIntB) have been renamed to variable names without the suffix B (e.g., IsInt). The non-boolean versions have disappeared.

Similarly, procedures that expected boolean procedures as arguments in Oz 1 (e.g., FilterB) have been renamed analogously (e.g., Filter).

We have written two small shell scripts that might be of some use for adopting your programs to these changes. These are:

You can download these scripts as tar-file here.

Arrays and Dictionaries

Arrays and Dictionaries are now modelled as chunks, efficient operations on them are provided by the modules Array and Dictionary.

The module DataStructure has become obsolete.

Records and Tuples

Records are allowed to have both literal and integer features in Oz 2.0. A tuple is just a special case of record where the features ranging from 1 to the record's width.

The module Tuple thus became very small, all procedures for records (e.g., Record.map) can be used for tuples as well.

Search

The module Search has been completely reorganized. It now features search engines that support recomputation. Recomputation trades space for time if a problem would take too much memory without recomputation.

An interactive and graphical tool that allows to explore the search tree of a given problem is the Oz Explorer.

Finite Domains

The module FD has been reorganized. It features a much richer set of propagators and distribution strategies. More information can be found here.

Objects and Classes

For more information see here.


Christian Schulte