start

This is an old revision of the document!


AspectScript is an extension JavaScript for Aspect-Oriented Software Development (AOSD) that is currently working over Mozilla Firefox Browser. This extension is an aspect language, which integrates (with) main !JavaScript features such as first-class and higher-order functions, dynamic typing, and prototyped-based programming. AspectScript is based on the pointcut-advice mechanism and considers the followings hot state-of-the-art AOP features:

* An extensible join model: The join point model is similar to the one found in [http://en.wikipedia.org/wiki/AspectJ AspectJ].However, it is possible to extend this

 join point model to identify other points of interest through customizable join points, similar to [http://www.cs.iastate.edu/~ptolemy/ Ptolemy] .

* 'Higher-Order Aspects': Like [http://www.cs.usask.ca/~cjd032/downloads/AspectScheme/ AspectScheme], !AspectScript aspects are first-class values, which are pairs of pointcut-advice. Pointcuts and advices are !JavaScript functions, which are first-class values as well. This feature allows programmers to use the full power of higher-order programming to define and manipulate aspects. * 'Aspects in Order': By default !AspectScript, the base code is executed in base level (level 0) and aspects (pointcuts and advices) are executing in a high level (level 1), which observe the the base level. However, !AspectScript permits to modify execution levels of base code and aspects using the semantics [http://www.pleiad.cl/research/scope#higher-order_aspects_in_order higher-order aspects in Order], that is to say, developers can choose in what level the base code is executed and what levels aspects see. * 'Dynamic deployment of aspect with scoping strategies': Aspects of !AspectScript are dynamically deployed like in [http://caesarj.org/ CaesarJ] and !AspectScheme. In addition, the

deployment of aspects can be managed using expressive [http://www.pleiad.cl/research/scope#expressive_scoping_of_dynamically-deployed_aspects scoping strategies] .

* 'Control of aspect reentrancy': As in most aspect languages, it is possible to have aspect reentrancy problems. As a result, !AspectScript allows programmers to [http://www.pleiad.cl/research/scope#controlling_aspect_reentrancy control aspect reentrancy] in a fine-grained manner.

Despite !AspectScript features, this aspect language has a scalable easiness of use. For instance, we just need to define an aspect that shows a message before that function 'foo' is called, we need to write down: }

Do you need more examples? You can find [wiki:examples here].

!AspectScript can download and install from [wiki:here download]

We do not have a tutorial yet, we think that this [wiki:paper technical report] can be useful for this purpose.

  • start.1251921320.txt.gz
  • Last modified: 2009/09/25 16:01
  • (external edit)