is an experimental language for concurrent
, designed with the following objectives:
- make concurrent programming simpler by providing
a framework with a clear and sound semantics.
- provide a safe language, in which, for example, data-races
- 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
Cellular automata are typical examples of programs that can be easily
encoded in FunLoft
The cellular automaton shown in the image is an example of Game Of Life
; it is made of concurrent cells run in a synchronised
way; the number of cells can be large (here, 10K cells are present);
the green and red cells can be run in real parallelism on a multicore
machine; the program is proved to run in finite memory, without memory
leaks and without data-races. To get an idea of what FunLoft
look like, look at the code of
the cellular automaton program
. Examples of
correct and incorrect programs
are also available.
is based on a programming model which is a variant of
and is closely related
A list of general questions/answers about FunLoft is available
started to be developed with support from the
project. It is now supported by the ANR project
The present language definition is subject to evolution to a large
extent and is provided as is, with the hope that underlying ideas
could be useful in a way or another.
More or less closely involved in the language definition, are the following persons:
Correspondence can be addressed to Frederic Boussinot