Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
otm [2011/01/26 16:41] aspectscript |
otm [2011/08/03 05:30] (current) aspectscript |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| * ** The life cycle semantics**. This semantics defines the evolution of matching of a sequence passes until it matches. | * ** The life cycle semantics**. This semantics defines the evolution of matching of a sequence passes until it matches. | ||
| - | * ** The spawning semantics**. This semantics defines when a sequence spawns another sequence using the same specification (e.g. advice) and sharing the history of what the sequence has matched until that moment. For example, tracematches spawn a new sequence if it only contains different bindings. | + | * ** The spawning semantics**. This semantics defines when a sequence spawns another sequence using the same specification (e.g. advice) and sharing the history of what the sequence has matched until that moment. For example, tracematches spawn a new sequence if it only contains different bindings |
| * ** The advice protocol semantics**. | * ** The advice protocol semantics**. | ||
| Line 15: | Line 15: | ||
| **Sequences**. In addition, sequences are first-class values and are specified using plain JavaScript functions, bringing the full benefits of the base language, in particular, the combination of higher-order functions and objects. To the best of our knowledge, there is no proposal that allows developers to define sequences expressively and to customize crucial semantics of a TM. | **Sequences**. In addition, sequences are first-class values and are specified using plain JavaScript functions, bringing the full benefits of the base language, in particular, the combination of higher-order functions and objects. To the best of our knowledge, there is no proposal that allows developers to define sequences expressively and to customize crucial semantics of a TM. | ||
| - | |||
| - | |||
| - | |||
| - | **Causality**. Although OTM is an open implementation of existing TMs, OTM can be used to address distributed system issues that are present in Web applications that use [[http:// | ||
| (Under construcction) Do you want to try the Boutique Web application example? Please, visit the [[otm/ | (Under construcction) Do you want to try the Boutique Web application example? Please, visit the [[otm/ | ||
| Line 50: | Line 46: | ||
| <pre id=" | <pre id=" | ||
| //== helper code == | //== helper code == | ||
| - | var SEs = OTM.SequenceExpressions; | + | var SQs = OTM.Sequences; |
| var jpsDiv = document.getElementById(" | var jpsDiv = document.getElementById(" | ||
| var a = function(){ | var a = function(){ | ||
| Line 60: | Line 56: | ||
| //==== | //==== | ||
| - | var tm = { | + | var statefulAspect |
| kind: OTM.AFTER, | kind: OTM.AFTER, | ||
| - | | + | |
| advice: function (jp){ | advice: function (jp){ | ||
| - | jpsDiv.innerHTML += " | + | jpsDiv.innerHTML += "[*MATCH:ab after:" |
| } | } | ||
| }; | }; | ||
| - | OTM.deploy(tm); | + | OTM.deploy(statefulAspect); |
| //executing the a and b functions | //executing the a and b functions | ||
| a(); | a(); | ||
| Line 76: | Line 72: | ||
| <div style=" | <div style=" | ||
| <pre id=" | <pre id=" | ||
| - | < | + | < |
| <div id=" | <div id=" | ||
| </ | </ | ||