www lispmeister.com

About

A life with Lisp blog

index | rss2.0 | atom

Author

Products

Order Succesful Lisp directly from bookfix.com


Order Successful Lisp by David B. Lamkins at amazon.de
German Shop: Lisp t-shirt
US Shop: JohnMcCarthy Lisp tshirt

Categories

Links

del.icio.us/lispmeister
bookfix.com
medigist.de
Successful Lisp
lemonodor.com
Foresight Institute
Lawrence Lessig
nanobot
Bill Clementson
FuturePundit
Planet Lisp
Nanotechnology Now
Nanodot.org
Unvollstaendigkeit

Archives

Calendar

Creative Commons License
hacker emblem blosxom

2004/07/15

Mozart Programming System

Mozart Programming System

Stefan Lehmke, author and maintainer of the supercool TeXPower presentation system, recommended the Mozart Programming System and the programming language Oz as an ideal platform for building agent based systems (like my conceptual workbench, which is of course pure Common Lisp).

The Mozart Programming System is an advanced development platform for intelligent, distributed applications. The system is the result of a decade of research in programming language design and implementation, constraint-based inference, distributed computing, and human-computer interfaces. As a result, Mozart is unequaled in expressive power and functionality. Mozart has an interactive incremental development environment and a production-quality implementation for Unix and Windows platforms.

Mozart is based on the Oz language, which supports declarative programming, object-oriented programming, constraint programming, and concurrency as part of a coherent whole. For distribution, Mozart provides a true network transparent implementation with support for network awareness, openness, and fault tolerance. Security is upcoming.

I've been browsing through the documentation and I wonder how they expect to build distributed applications, without a notion of capabilities and delegation, like for example provided in the E programming language. Unless I missed something (quite likely), thread synchronization is still difficult (not trivial, like in E).
- posted by Ralph Richard Cook - 2004/7/16 04:51:22
I believe that 'thread synchronization' is achieved the same way it is in the Erlang language, in other words it's ignored. Communication between 'processes' is done via asynchronous message passing. This mechanism is even used as a language idiom in Erlang to simulate object-based programming (not sure how they do inheritance). Another advantage is that communicating with a process on another machine is done exactly the same way as it is on the same machine. I put 'processes' in quotes because in Erlang that's what they're called, but it's not like a heavyweight process (fork) or even a thread, I think they just round-robin it or something. If it sounds slow, don't worry - those guys depend on processes like the Lisp guys depend on lists, so a lot of work has been done to make them fast. An example is the YAWS web server written in Erlang, which can handle 40,000 users at once on the same machine that Apache with threads can handel about 8,000. Er, anyway, back to Oz, I think their concurrency mechanisms are similar to Erlangs.
They are introducing E features - posted by Heiko - 2004/7/16 18:45:25
Hi! The Mozart guys have a project running to introduce such features from E.http://renoir.info.ucl.ac.be/twiki/bin/view/INGI/MILOSProject (sorry for my bad english.)
a comment on thread synchronization in Mozart - posted by Stefan Mandl - 2005/3/11 22:59:43
Threads in Mozart/Oz are handled differently than in Erlang. They use the so-called dataflow semantics of variables, i.e. a variable has two different states: unbound and bound. When a variable comes to life, it is in unbound state and every thread that is trying to access its value will be blocked until some other thread assigns a value to the variable. This value will not change from then on. Variables can be passed around without assigning values to them. Very elegant in my opinion.


Leave a comment...

 
Name:
URL/Email: [http://... or mailto:you@wherever] (optional)
Title: (optional)
Comments:
Save my Name and URL/Email for next time

Trackback

TrackBack ping me at:

http://lispmeister.com/blog/AI/mozart.trackback