Mozart announcement and comparison with Java platform

Mozart main site

Mozart 1.0 was released on Jan. 25, 1999.

Summary

Mozart 1.0 is an extensive development platform for open fault-tolerant distributed applications, constraint programming applications, and logic programming applications. The platform implements the Oz language and is the fruit of a decade of research. The platform is released without charge with a very liberal license (X11-style) that allows both commercial and non-commercial use. Full source code is available. The platform includes a full-fledged interactive development environment with many libraries and tools. There is extensive documentation including tutorials covering all below mentioned application areas, a complete set of reference manuals, and many demos. The distribution, constraint, and logic programming abilities are the subject of ongoing research.

Mozart provides state-of-the-art support for distributed programming that separates the issues of application functionality, distribution structure, fault tolerance, and open computing. The implementation is fully network-transparent, i.e., an application obeys exactly the same semantics independent of its distribution structure, which is specified separately from the application functionality. The platform reflects distribution and fault tolerance in the language, providing abstractions that allow full control over these issues from within the language.

Mozart provides state-of-the-art support for constraint programming and logic programming. There are four constraint systems, namely rational trees (as in modern Prologs), finite domains, finite sets of integers, and record constraints. The platform is robust and able to handle big problems. Its performance is competitive with commercial solutions (including ILOG Solver, CHIP, SICStus Prolog, and Prolog IV), but it is much more expressive and flexible, providing first-class computation spaces, programmable search strategies, a GUI for the interactive exploration of search trees, parallel search engines that exploit networked computers, and a programming interface to add new, efficient constraint systems.

Distribution and constraint programming form a unique combination for emerging application areas. Intelligent multi-agent systems profit from having both aspects together. Furthermore, Mozart provides an easy-to-use parallel search engine for constraint programming and logic programming. This makes it easy for ordinary users to vastly increase the performance of compute-intensive applications, without having to rewrite them.

Applications

The Mozart consortium has developed significant applications with the platform. Here we give a brief overview; a more complete list is here. DFKI has developed a real-time bus scheduler, an intelligent manufacturing systems planner, a configuration tool, and an automatic music composition tool. DFKI uses Mozart as the base platform for its multi-agent research. UdS has developed a corpus browser. UCL has developed TransDraw, a state-of-the-art collaborative graphic editor that has high performance even over very slow networks. SICS has developed applications in train scheduling and radar configuration, and MIM (Mozart Instant Messager), an extended version of ICQ.

Development environment

The Mozart platform includes an interactive programming interface based on Emacs (both GNU Emacs and XEmacs are supported), an incremental compiler, development tools (including browser, interactive constraint visualizer, parser-generator, profiler, and debugger), an Internet-wide module system with dynamic linking, full Web support (applets, servlets, CGI), persistent data structures, an object-oriented graphics interface based on Tcl/Tk, powerful interoperability features including support for sockets and a C++ interface for dynamically-linked libraries, a distributed garbage collector, infinite precision arithmetic, and support for stand-alone applications. Furthermore, there are extensive libraries of constraints (including support for scheduling) and search engines including parallel engines. Performance is competitive with commercial Prolog and Lisp systems and is better than emulated Java.

Comparison with Java

It is interesting to compare Mozart with JDK 1.2. Mozart distinguishes itself from Java in the following ways: The major disadvantage with respect to Java is that Mozart is not a mainstream platform. Rather, it is the Mozart Consortium's vehicle for research and development.
Copyright 1999 Peter Van Roy. All rights reserved.