Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 internet speed test! ×

Submission + - Announcing Ozma: extending Scala with Oz concurren (lambda-the-ultimate.org)

setori88 writes: Programming in concurrent, parallel, or distributed settings has become a necessity that no one denies anymore. Multicore CPUs, clusters, the Internet, and recently cloud computing are as many reasons to design with concurrency in mind. All languages of practical importance have their dedicated libraries and idioms to work in such settings. There are also languages that were designed for concurrency and distribution.
One of those languages is Oz, a multiparadigm programming language that provides advanced primitives regarding concurrency and distribution. It is mostly declarative, a paradigm that encompasses functional and logic programming. Despite its very innovative features and its expressiveness, Oz never made it into the wide developer community. Among the most likely reasons are its syntax, which is so different from all mainstream languages that it is difficult for developers to accept it.

When designing the Scala programming language, its author, Martin Odersky, was very aware of the critical requirements for a language to be accepted by the community. He designed Scala as being both close to Java (in terms of syntax and concepts) and interoperable with any existing Java library. As of today, Scala seems to be the best hope of getting functional programming languages in mainstream languages.
Although Scala has no language feature related to concurrency, there exists an advanced library, Akka (http://akka.io/), created by Jonas Boner, which provides Scala programmers with concurrent and distributed concepts coming from Erlang. It uses the Actor Model combined with Software Transactional Memory.

Ozma is an attempt at making the concurrency concepts of Oz available to a larger public. Ozma implements the full Scala specification and runs on the Mozart VM. It can therefore be seen as a new implementation of Scala. Ozma extends Scala with dataflow variables (allowing tail-recursive list functions), declarative (deterministic) concurrency, lazy declarative concurrency, and message-passing concurrency based on ports. We can say that Ozma lifts the duality of Scala, namely the combination of functional and object styles, to concurrent programming.

Slashdot Top Deals

(1) Never draw what you can copy. (2) Never copy what you can trace. (3) Never trace what you can cut out and paste down.