Mozart-Oz Multi-paradigm Programming Systempvr/mozart-oz.pdf · Mozart-Oz I Mozart is an...
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
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
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
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
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
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