Prototype Haskell Backend

Nikolaos Bezirgiannis from CWI has announced his prototype of the ABS-to Haskell transpiler (source-to-source translation):

The abs2haskell compiler is running for some examples, you can check it through web here:;a=summary
Or clone the code with: git clone git://
The file explains how to build the compiler and execute some examples.

I ran a simple benchmark doing some Map processing. The results are:
Machine: dual-core i7 with hyperthreading (= 4 threads)

Java backend: 2.339secs (4threads)
Erlang backend: 1.840secs (4threads)
Haskell backend: 0.203secs (1thread)
Haskell backend: 0.189secs (2threads)

The above results use the Maps implemented as Lists (as in abslang.abs)

The benchmark could benefit if Maps were properly implemented as balanced binary trees.
This is now the default case for the Haskell backend;
the backend now automatically translates Maps to proper balanced binary trees.

The results of the faster Maps on the same benchmark for Haskell are:
Machine: dual-core i7 with hyperthreading (= 4 threads)

Haskell backend: 0.084secs (1thread)
Haskell backend: 0.060secs (2threads)
Haskell backend: 0.042secs (4threads)

The compiler is nearly complete, but I still have to run more examples.
I very much welcome any suggestions!

Nikolaos Bezirgiannis

It already successfully parses a wide range of examples and compiles them through GHC into binaries (see the result from out continuous integration system).

To stay up to date on ABS, please consider joining our mailing lists at!