Section: Software

Functional programming

Participants : Frédéric Boussinot [Inria] , Cyprien Nicolas [Inria] , Bernard Serpette [Inria] , Manuel Serrano [correspondant] .

The Bigloo compiler

The programming environment for the Bigloo compiler [5] is available on the Inria Web site at the following URL: http://www-sop.inria.fr/teams/indes/fp/Bigloo . The distribution contains an optimizing compiler that delivers native code, JVM bytecode, and .NET CLR bytecode. It contains a debugger, a profiler, and various Bigloo development tools. The distribution also contains several user libraries that enable the implementation of realistic applications.

Bigloo was initially designed for implementing compact stand-alone applications under Unix. Nowadays, it runs harmoniously under Linux and MacOSX. The effort initiated in 2002 for porting it to Microsoft Windows is pursued by external contributors. In addition to the native back-ends, the Bigloo JVM back-end has enabled a new set of applications: Web services, Web browser plug-ins, cross platform development, etc. The new Bigloo .NET CLR back-end that is fully operational since release 2.6e enables a smooth integration of Bigloo programs under the Microsoft .NET environment.

The FunLoft language

FunLoft (described in http://www-sop.inria.fr/teams/indes/rp/FunLoft ) is a programming language in which the focus is put on safety and multicore.

FunLoft is built on the model of FairThreads which makes concurrent programming simpler than usual preemptive-based techniques by providing a framework with a clear and sound semantics. FunLoft is designed with the following objectives:

  • provide a safe language, in which, for example, data-races are impossible.

  • control the use of resources (CPU and memory), for example, memory leaks cannot occur in FunLoft programs, which always react in finite time.

  • have an efficient implementation which can deal with large numbers of concurrent components.

  • benefit from the real parallelism offered by multicore machines.

A first experimental version of the compiler is available on the Reactive Programming site http://www-sop.inria.fr/teams/indes/rp . Several benchmarks are given, including cellular automata and simulation of colliding particles.