This page contains a list of artifacts produced by research from DISCO.


Voyager is a multiverse debugger probe-effect free implemented on top of the AmbientTalk operational semantics. Voyager allows developers to explore interactively the paths of execution of an actor-based program using message oriented breakpoints and stepping operations. Voyager is implemented as a web application build on top of PLT-Redex, which executes the operational semantics of a multiverse debugger.


Guardia is an internal DSL for expressing application-specific declarative access control policies. Policies then are enforced at runtime by source code instrumentation or JavaScript reflective capabilities.


Kómpos is a multiparadigm concurrent debugger for applications implemented in the SOMns programming language. Kómpos allows developers to focus on the high-level interactions between different kinds of concurrent entities. E.g., actors with Communicating Event-Loops model, Software Transactional Memory, Communicating Sequential Processes and threads. Kómpos is implemented as a web application in TypeScript.


Apgar is an online message-oriented debugger for actor-based applications implemented for the SOMns programming language. Apgar provides advanced debugging operations such as message-oriented breakpoints, advanced stepping, actor state inspection and visualization of turns by actor and asynchronous frames. Apgar frontend is implemented as a plugin for the IntelliJ IDE.


IDRA is an out-of-place debugger for Pharo Smalltalk. It enables local debugging of a remote execution, through an exact copy of a failed/halted execution. It provides live code updating functionalities, to update the debugged remote execution in the spirit of live programming.


Spa and Port are Big Data parallel execution frameworks for Pharo Smalltalk. Spa provides a Spark-like programming model, with the concept of a distributed data structure and functional transformations; Port, instead, provides a classical Map/Reduce execution model. They both execute on the same runtime, composed by a set of different single-threaded Pharo images. Spa/Port handle the deployment and parellelization of the applications. They are both research prototypes for advanced debugging techniques, providing composite exceptions and live code updates to ease debugging and development of parallel exception.


Flec is an extensible programming framework for CRDTs written in TypeScript. It incorporates the concepts of ambient-oriented programming, to discover and communicate with replicas in a distributed dynamic network. In ambient-oriented programming, developers are provided with an actor-based programming model where actors can communicate using asynchronous message passing and coordinate through futures.


Strong Eventually Consistent Replicated Objects (SECROs) let programmers replicate sequential data types by declaring application-level invariants. At runtime, SECROs compute a total order of the operations that respects the invariants and guarantees state convergence.


UtafitiLog is an artifact demonstrating the use of visual and dataflow programming in the implementation of distributed applications. The application is build on top of DisCoPar, a visual programming language. The application is targeted at helping farmers monitor changes in weather conditions.