Skip to content
Sébastien Doeraene edited this page Feb 14, 2013 · 3 revisions

About this implementation

This project aims for the re design of the Mozart Virtual Machine (MVM) that interprets the Oz programming language.

More information on Mozart-Oz in general can be found on www.mozart-oz.org.

Why a new implementation?

Well, after more than 15 years the possible targets of the language have expanded, new ideas that complement it have emerged and even the evolution of the hardware. Because all of this we were facing the need of a new implementation.

Which are the main goals?

The new MVM has to provide a way to integrate the advances in constraint programming and distributed computing of the last years. The approach that we will follow for this is to decouple the VM from the actual support for that. In the new design, we will consider two subsystems with which the VM will interact:

The constraint subsystem will uses the Gecode constraint library to provide state of the art capabilities. The distribution subsystem will use DSS. The aim of this separation is two folded. First, it will keep the core implementation minimal. Second, it will allow to integrate advances in the constraint and distributed system communities with less effort than today.

Apart from this we are interested in using the new MVM on hardware that was not accessible at the time the current implementation was developed. This includes multi-core CPUs with 64 bits instruction sets and mobile devices like smart phones.

MVM design

This section reflects important aspects of the new design.

MVM ecosystem

In order to offer the community a new programming environment we need to take into account the current Mozart ecosystem. It consists of several additions that have been made on top of the VM to extend the usability of the language. Those additions have to be integrated to the new VM at some point. The following is a list that mentions/discusses which of them we are considering to port to the new VM and which are the priorities that we currently have for them.

  • Graphical user interface (QTk): ported
  • Gump: no plan to include in the standard distribution anymore

Contributors

The way we intend this project to succeed is by a community effort. Currently the language has development and user communities. We welcome any collaboration from them. You may see on Ohloh a list of people who have contributed to the project.

More help is of course welcome.

Contact information

Help with this project is always welcome. Even if we do not have the man power we would like to provide all the possible features, we are willing to guide anyone interested in working in this project. If you are interested do not hesitate to contact our Mozart guru: