Sloth(ID:3753/slo005)


Sloth is a compiler that translates Curry programs into Prolog, extending our previous work on the translation of Babel programs. Currently, Sloth generates SICStus-3.0 code but is almost 100% ISO compliant -- i.e. easily portable. The system includes also an interactive top-level (Curry Shell).
The motivation for implementing and maintaining an apparently inefficient implementation of Curry is the need of keeping up to date with a rapidly evolving language, easily introducing changes that would take longer in an abstract machine implementation. Nevertheless, while slower than Prolog, Sloth is perfectly usable as a first contact with Curry.

Another goal is to encourage other groups to have their own implementations of Curry, by making the front-end of Sloth available to them.

Some features present in Sloth are: lazy narrowing and residuation as execution models; optimal definitional trees; type inference system; monadic IO (restricted); curried data constructors; lambda abstractions; constraints with parallel evaluation of goals; conditionals and choice; interactive vs. batch mode; etc.

http://lml.ls.fi.upm.es/sloth/


Structures: