This is an old revision of the document!
OTM: Open Trace-based Mechanism
OTM is an open implementation for existing trace-base mechanisms, like Tracematches , Halo, Alpha, etc. Currently, OTM is implemented for JavaScript as a seamless extension for AscpectScript. Like AspectScript, OTM supports Mozilla Firefox, Safari, Chrome, and Opera (no plug-ins or add-ons required!) and does not extend of the JavaScript syntax. OTM, which adopts object-oriented programming and open implementation as its core design principles, is focused on opening the following points of a trace-based mechanism:
- Sequence definition Sequence definition. Most of TMs define sequences using a domain-specific language, which is typically not commonly turing complete. Instead, OTM allows developers to define sequence using the full power of the base language. In addition, OTM permits to reason about the matching of the sequences because they are first-class values. For example, it possible to know if a sequence defined as a matched with the trace of execution: a or a a.
- The strategy of multiple matching Almost all trace-based mechanisms have different strategies of multiple matching that are not configurable. OTM allows developers to define and configure the strategy of multiple matching.
- The life cycle of the sequences Unlike current trace-based mechanisms, OTM allows developers to control the life cycle of the partially-matched sequences. For example, OTM can remove or match all (or a group of) sequences if some condition is satisfied.
Do you want to try OTM? You can download OTM from the following svn: http://pleiad.dcc.uchile.cl/svn/incubator/otm/
Try it on-line
In this section you can interactively try OTM. Just write some JavaScript code an press “Run it!”. The code will be automatically transformed and executed in the interal frame below. The HTML code on the second textarea is also appended to the resulting page, so the JavaScript code can access it.
Credits
OTM is designed and implemented at the Pleiad lab by Paul Leger, under the supervision of the professor Éric Tanter.