Mozart-Oz Multi-paradigm Programming Systempvr/mozart-oz.pdf · Mozart-Oz I Mozart is an...

26
Mozart-Oz Multi-paradigm Programming System Boris Mejías and the Mozart community www.mozart-oz.org [email protected] Boriss Mejías Mozart-Oz

Transcript of Mozart-Oz Multi-paradigm Programming Systempvr/mozart-oz.pdf · Mozart-Oz I Mozart is an...

Mozart-OzMulti-paradigm Programming System

Boris Mejías and the Mozart community

www.mozart-oz.org

[email protected]

Boriss Mejías Mozart-Oz

Mozart-Oz

I Mozart is an implementation of Oz, a multi-paradigmprogramming language supporting

I declarativeI functional (lazy and eager)I object-orientedI concurrentI distributedI logicI constraint programming

as part of a coherent whole

Boriss Mejías Mozart-Oz

Mozart-Oz

I Mostly used in academia but also in industryI It runs on GNU/Linux, Solaris, MacOSX and other

operating systemsI From Mozart Consortium (Belgium, Germany, Sweden) to

an open Mozart community organized by a Boardgovernance model with MEPs

I It provides the Oz Programming Interface (OPI)I Strengths:

I Concurrency: ultra lightweight threads, dataflowsynchronization

I Inferencing: constraint and logic programmingI Distribution: network transparent, open, fault tolerantI Flexibility: dynamically typed, incremental compilation

Boriss Mejías Mozart-Oz

A bit of Oz code

Boriss Mejías Mozart-Oz

A bit of Oz code

Boriss Mejías Mozart-Oz

Teaching programming using Oz

“Concepts, Techniques, andModels of ComputerProgramming” by Peter Van Royand Seif Haridi, published by MITPress in 2004. (900 pages)

I One language to teach manyconcepts involved in all majorprogramming paradigms

I Used for teaching in more than20 universities worldwide

I The book is available in English,Polish, and soon in Spanish,Japanese and French

Boriss Mejías Mozart-Oz

Strasheelaby Torsten Anders

I A constraint-based music composition systemI Users declaratively state a music theory model (as Oz

code) – computer generates music which complies withthis theory

I A theory model is implemented by a set of compositionalrules (constraints) applied to a music representation inwhich some aspects are expressed by variables

I Results are output into various formats, e.g. music notationand sound synthesis

I Strasheela is highly programmable and extendable, e.g.users control what information is stored in the musicrepresentation

Boriss Mejías Mozart-Oz

Strasheela

Boriss Mejías Mozart-Oz

SCOLL Safe Collaboration Languageby Fred Spiessens and Yves Jaradin

Boriss Mejías Mozart-Oz

SCOLL Safe Collaboration Languageby Fred Spiessens and Yves Jaradin

Boriss Mejías Mozart-Oz

LOGIS Caster Schedulerby Filip Konvicka and LOGIS, s.r.o.

I It is a commercial planning/scheduling tool for continuousingot steel casting plants

I Client/server application (Oz-based server, Java-basedGUI clients)

I Users provides business and technological constraintsfrom metal industry, and the application produce aschedule for the plant

I Able to produce a month’s schedule for a medium-sizedsteel plant (about 200,000 tons/month) within 20 minutes.Previous methodologies never allowed plants to producemonth’s schedule.

I Developed and used in Czech Republic

Boriss Mejías Mozart-Oz

LOGIS Caster Schedulerby Filip Konvicka and LOGIS, s.r.o.

Boriss Mejías Mozart-Oz

LOGIS Caster Schedulerby Filip Konvicka and LOGIS, s.r.o.

Boriss Mejías Mozart-Oz

Peer-to-peer libraries P2PS/P2PKitby Valentin Mesaros, Bruno Carton and Kevin Glynn

I Self optimized Chord-alike structured overlay networkorganized by successor, predecessor and finger-table

I Tolerant to link and processes failures

Boriss Mejías Mozart-Oz

Peer-to-peer libraries P2PS/P2PKitby Valentin Mesaros, Bruno Carton and Kevin Glynn

P2PS/P2PKit running on PlanetLab

Boriss Mejías Mozart-Oz

Enhanced Binding Library EBL/tkby Donatien Grolaux

I State-of-the-art toolkit for graphical interfacesI It mixes declarative and object-oriented approachesI 1/3 lines of code compare to standard toolkits (Swing,

AWT, GTk, etc.)I Each window component is freely detachable from its

original place, and can be dynamically attached to anyother EBL/tk window

I This dynamic migration process is completely transparentto the running application itself

I Migration of UI can be done to a different machineI Seamlessly integrated in Mozart

Boriss Mejías Mozart-Oz

Enhanced Binding Library EBL/tkby Donatien Grolaux

Boriss Mejías Mozart-Oz

Enhanced Binding Library EBL/tkby Donatien Grolaux

Boriss Mejías Mozart-Oz

Enhanced Binding Library EBL/tkby Donatien Grolaux

Boriss Mejías Mozart-Oz

Enhanced Binding Library EBL/tkby Donatien Grolaux

Boriss Mejías Mozart-Oz

Enhanced Binding Library EBL/tkby Donatien Grolaux

Boriss Mejías Mozart-Oz

Enhanced Binding Library EBL/tkby Donatien Grolaux

Boriss Mejías Mozart-Oz

Solving package installation problemsby Sébastien Mouthuy

I Check that any package proposed in a distribution couldbe installed with respect to its dependencies requirements(same as aptitude, yum, etc)

I NP-Hard problem solved with constraint programmingI New search heuristics giving solutions for any package in

less than 2 secondsI It can find an installation solution to all packages of the

entire Debian distribution (33200 different packages) inless than 1h50. Much faster than SAT solvers

I Simple implementation using cheap threads and data-flowsynchronization

Boriss Mejías Mozart-Oz

Current Projects

I MozDSS: Integration with middleware for transparentdistribution support called Distribution SubSystem (ErikKlintskog, Raphaël Collet, Boriss Mejías)

I GeOz: Integration with Gecode, a state-of-the-artconstraint programming library (Gustavo Gutierrez et al. inColombia)

I EVERGROW: European Project supporting ourpeer-to-peer development

I SELFMAN: European Project to study large self-managingdistributed applications based on structured overlaynetworks

Boriss Mejías Mozart-Oz

Final Message

I Mozart-Oz is a powerful and mature programming systemI Since 1995I Around 106 lines of code

I It supports all major programming paradigms giving youthe possibility of choosing the right one for every problem

I Widely used for constraint programmingI It supports cheap concurrency and distributed

programming transparentlyI Not only for academia. Also professional software

development.

Boriss Mejías Mozart-Oz

Useful links

I Mozart-Oz: www.mozart-oz.orgI Strasheela: strasheela.sourceforge.netI SCOLL:www.info.ucl.ac.be/~fsp/scollardocmain.html

I LOGIS Caster Scheduler: www.logis.czI P2PS: gforge.info.ucl.ac.be/projects/p2psI P2PKit: p2pkit.info.ucl.ac.beI EVERGROW: www.evergrow.orgI SELFMAN: www.ist-selfman.org

Boriss Mejías Mozart-Oz