Interaction-oriented programming with Djnn and Smala

The Smala Programming Language

Smala is a language that has been designed to effectively support the development of reactive applications. Smala is built on the top of a set of C++ libraries named Djnn. Djnn provides a core library that implements the execution engine allowing to run a tree of components.
Djnn libraries provide various components for arithmetic, logic, graphics and various control structures such as finite state machine.
It is possible to build a tree of components by directly using these libraries and the C++ language. However the task is akin to those of writing an abstract syntax tree. Thus, we designed Smala so as to provide a dedicated syntax with specific symbols that helps to visualize the interaction between components. Smala comes with a compiler that transforms the Smala program into a program written in the C++ language.

The Djnn libraries and the Smala compiler are freely available on github:

https://github.com/lii-enac/djnn-cpp
https://github.com/lii-enac/smala

ENAC
Equipe Informatique Interactive.
7 avenue Edouard Belin.
31055 Toulouse Cedex 4
France
Tél. : +33 5 62 17 40 19
stephane.conversy[at]enac.fr
Better understand the interaction phenomenon and master the design of more efficient interactive systems.