Aviva Directory » Computers & Internet » Programming » ML (languages) » Alice ML

Commonly known simply as Alice, Alice ML is part of the ML family of programming languages. Designed by the Programming Systems Laboratory in Germany, it is a dialect of Standard ML.

Alice extends SML with support for lazy evaluation, concurrency, and constraint programming.

Concurrency features are part of the base language in Alice, using a future type that represents a value provided by an independent thread of execution. A thread using a future value will block on an attempt to access the value until the thread performing it has completed the computation. Also included is a related concept known as a promise, which allows a thread to provide a future value that it will compute to another thread. Both future and promise typed variables are used to implement data-flow synchronization.

Similar to Haskell, another functional language, Alice allows for a lazy evaluation strategy in programs, which the eager evaluation strategy of SMLl does not do. However, Alice uses the eager evaluation model by default, requiring an explicit programming statement for computation to evaluate lazily, while Haskell uses the lazy model by default.

The Alice implementation from Saarland University uses the Simple Extensible Abstract Machine (SEAM). Licensed under the MIT License, it is free software that features just-in-time compilation to bytecode and native code. Earlier versions of Alice ran on the Mozart Programming System (Oz) virtual machine, allowing interfacing between Alice and Oz code.

The focal point of this category is on the Alice ML programming language. Websites featuring any implementations of the language, as well as any IDEs, editors, or other tools designed specifically for programming in Alice are appropriate for this category, along with tutorials, guides, user groups, or forums.

 

 

Recommended Resources


Search for Alice ML on Google, Bing, or Yahoo!