Main Publications

Tackling the Awkward Squad for Reactive Programming: The Actor-Reactor Model (2020)
Sam Van den Vonder, Thierry Renaux, Bjarno Oeyen, Joeri De Koster, Wolfgang De Meuter. 34th European Conference on Object-Oriented Programming, ECOOP 2020, November 15-17, 2020, Berlin, Germany (Virtual Conference). LIPIcs 166, Schloss Dagstuhl - Leibniz-Zentrum für Informatik 2020, ISBN 978-3-95977-154-2: 19:1-19:29

The original publication where Stella and The Actor-Reactor Model were introduced.

http://soft.vub.ac.be/Publications/2020/vub-tr-soft-20-03.pdf (published article)
http://soft.vub.ac.be/Publications/2020/vub-tr-soft-20-17.pdf (artifact)
https://www.youtube.com/watch?v=lCWeki4vHHY (ECOOP 2020 presentation)

Topology-Level Reactivity in Distributed Reactive Programs: Reactive Acquaintance Management using Flocks (2022)
Sam Van den Vonder, Thierry Renaux, Wolfgang De Meuter. The Art, Science, and Engineering of Programming, Volume 6, Issue 3.

A refinement of Stella, applied to distributed reactive programming for open networks.

http://soft.vub.ac.be/Publications/2022/vub-tr-soft-22-07.pdf (published article)

"Hello World!"

Each Stella program must contain an actor behaviour called Main. This actor behaviour must have a constructor named start. To start a Stella program, the Stella runtime spawns an instance of the Main actor behaviour and invokes the start constructor. This code snippet implements a "Hello World!" program.

The body of the start constructor contains a single println statement in operator prefix notation (Polish Notation), which is an invocation of the println! method on the "Hello World!" object of class String. Similarly, (+ 1 2) invokes the + method on number 1, with one argument which is the number 2.


Other expressions may be used in the body of constructors and methods, such as those shown in the code snippet. Local variables are introduced via def, assignments use set!, conditionals use if and cond. Some methods on objects are built-in (i.e. defined on the root class Object): equal? tests for object equality, eq? for object reference equality. All values are #true except for #false and #undefined.

Showcase: Villo! Bikes in Brussels

Stella was used to write an application called Villo! Bikes in Brussels . It presents a visualization of the "Villo!" public bike rental programme in the Brussels-Capital Region, Belgium.

A hexagon overlay on a map of Brussels shows the availability of Villo! rental bikes throughout the Brussels-Capital Region.

Special "counting markers" can be added to the map to count all bikes in a user-defined region. Stella reactors are responsible for continuously updating their count as the user changes the marker location or radius.

More information: Villo! Bikes in Brussels .