Archive for the ‘Reactive Languages’ Category
Our new paper, “Structured Reactive Programming with Céu”, will appear in the Workshop on Reactive and Event-based Languages & Systems (REBLS’14) at SPLASH.
REBLS succeeds REM as the new “reactive workshop” inside SPLASH.
The paper discusses our proposal for “organisms” as an abstraction mechanism for “Structured (Synchronous) Reactive Programming (SSRP)”. It is the textual version of the talk at the Strange Loop.
The preprint version of the paper can be downloaded here.
Our paper entitled “Advanced Control Reactivity for Embedded Systems” has been accepted in the Workshop on Reactivity, Events and Modularity (REM) this year in Indianapolis!
REM is a workshop inside the SPLASH/OOPSLA conference.
The preprint version for the paper can be downloaded here.
This is a more theoretical paper in comparison to our previous for SenSys.
We discuss how to build advanced control mechanisms on top of the reactive primitives of Céu and present a formal specification of the language.
It has been more than one year since my last blog post. The reason is the direction I took two years ago, in the beginning of my PhD, switching from LuaGravity to something more grounded.
LuaGravity was very fun to work with, it showed how reactive languages are expressive, allowing complex dependency patterns to be written with simple expressions. It also showed how easily Lua can be hacked in runtime to provide a completely different semantics.
However, LuaGravity is overly powerful as a research artifact. In this context, what really matters is to understand the motivations, goals, and what is needed and not needed in a reactive language. The border between Lua and LuaGravity was unclear and Lua is too dynamic, what complicates the deterministic execution enforcement we wanted to provide.
The development of a new language—Céu—is the process to answer and pose research questions related to reactive languages.
Céu can be defined in keywords as a reactive, imperative, concurrent, synchronous, and deterministic language. The syntax is very compact (resembling CSP or Pi-calculus), what is great for writing papers and discussing programs, but not necessarily for developing applications.
Currently, Céu is targeted at Wireless Sensor Networks, but any constrained embedded platform is of our interest. Follows a “Hello World!” program in Céu that blinks three leds, each with a different frequency, forever:
( ( ~250ms ; ~>Leds_led0Toggle)* || ( ~500ms ; ~>Leds_led1Toggle)* || ( ~1000ms ; ~>Leds_led2Toggle)* )
I presented Céu in the Doctoral Colloquium  at Sensys’11 last week. The 3-page summary submitted to the conference can be reached here.