My Software

This page shows the different software developed for my research:

– RAI-JS: Reactive Activation Interface for Context-Oriented Programming in JavaScript.

– DeloreanJS: A back-in-time debugger for JavaScript. This software is strongly developed with Felipe Ruiz ( and Guillermo Victorero (

– ESA-JS: An implementation of ESA, the description of an expressive stateful aspect language. A stateful aspect language supports the definition of monitors to observe and react to a program execution trace.  They have numerous applications in domains like error detection, security, and modular definition of crosscutting concerns.

– AspectScript: An aspect-oriented extension of JavaScript for expressive AOP; integrates several state-of-the-art features related to higher-order programming and expressive scoping of aspects.

– WeCa: A practical library that allows for modular and flexible control over causality issues in the Web. In contrast to current proposals, WeCa uses stateful aspects, message ordering strategies, and vector clocks. WeCa has been used with several practical examples from the realm of  Web applications. For instance, we analyze the flow of information in these applications like Twitter using WeCa.

– MatcherCells: A self-replication algorithm to match flexibly program execution traces.  Through the composition of simple reaction rules, MatcherCells makes it possible to express a wide range of matching semantics, per aspect. We provide an implementation of this algorithm here.

– ECOCAM: An initial implementation of a context-dependent system to promote mental calculation strategies for primary school students. ECOCAM uses OTM-JS to be implemented.

– SyncAS (proof of concept): A library to address callback issues on ActionScript.

– Sync/CC (proof of concept): A library to address callback issues on JavaScript.