## Process-Algebraic Foundations of Aspect-Oriented Programming (2001)

Venue: | In Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (Reflection 2001 |

Citations: | 55 - 0 self |

### BibTeX

@INPROCEEDINGS{Andrews01process-algebraicfoundations,

author = {James H. Andrews},

title = {Process-Algebraic Foundations of Aspect-Oriented Programming},

booktitle = {In Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (Reflection 2001},

year = {2001},

pages = {187--209},

publisher = {Springer-Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

Process algebras are proposed as a foundation for aspect-oriented programming. A particular process algebra is described, and programs illustrating its use in programming are given. It is argued that the framework clarifies the notion of equivalence between programs and correctness of aspect-weaving algorithms. The question of which notion of equivalence is most appropriate is discussed from theoretical and practical points of view. An aspect-weaving algorithm is presented and proven correct. A simple imperative aspect-oriented language is presented and translated into the given process algebra.

### Citations

3499 | Communicating Sequential Processes - Hoare - 1985 |

1368 |
A Calculus of Communicating Systems
- Milner
- 1980
(Show Context)
Citation Context ...ri)) hstmtListi around advice Fig. 9. Syntax of IAO, the imperative aspect-oriented language to be translated Work on translating imperative programs to processes dates back to Milner's original book =-=[Mil80]-=-; a recent example (using the -calculus to model a concurrent language) is [RS99]. These approaches generally represent variables by standalone processes, because the process languages on which they a... |

972 |
Negation as failure
- Clark
- 1987
(Show Context)
Citation Context ...constraint of the form s = t, s 2 S, or :c 0 , where s and t are terms, S is a set of terms, and c 0 is a constraint. Equality constraints are interpreted consistent with Clark's Equality Theory, CET =-=[Cla78]-=-; that is, two terms are equal iff they are syntactically identical. -- P jSj Q, where P and Q are processes and S is a set of terms, is the process which can do the actions of P and Q interleaved, ex... |

270 |
Formalizing Architectural Connection
- Allen, Garlan
- 1994
(Show Context)
Citation Context ...ot aware of any work related to the metaphor of aspects as processalgebraic processes. The work most closely related to ours is the following. Architecture description languages (ADLs) such as Wright =-=[AG94]-=-, also based on CSP, allow us to describe the high-level structure of a software system. Pict [PT97] is a programming language based on the pi-calculus (a successor process algebra to CCS). Neither AD... |

205 |
The Concurrency Workbench: a semantics-based tool for the Verification of concurrent systems
- Cleaveland, Parrow, et al.
- 1993
(Show Context)
Citation Context ... g(f(s); t), for any terms s; t; and fg, the empty set. Other implementations of CSP and related formalisms have used other approaches to defining sets. In the Concurrency Workbench of North Carolina =-=[CPS93]-=-, a set is any finite list of identifiers, or any intersection, union or difference of sets. In Machine Readable CSP [Sca98], users can define a much richer range of sets, including sets of terms sati... |

61 |
Communicating Sequential Processes," Prentice-Hall, Englewood Cliffs
- HOARE
- 1985
(Show Context)
Citation Context ...ion 6 discusses related work, and Section 7 presents conclusions and suggestions for future directions. 2 Process Language The language we study here is based on the subset of the CSP process algebra =-=[Hoa85]-=- with prefixing, synchronization on a set, and external choice. We tailor this language to our purpose by using terms as actions, and adding an existential quantifier for introducing variables and an ... |

16 | Broad-spectrum studies of log file analysis
- Andrews, Zhang
- 2000
(Show Context)
Citation Context .... It would be interesting to explore precise connections between our work and the previous work. Finally, the original motivation for this work was the observation that a program in the language LFAL =-=[AZ00]-=-, used for checking the results of tests on software, can be used to actually simulate the software it is intended to check. An LFAL program is essentially a process of a process algebra expressed as ... |

11 | Sorting out concerns
- Carver, Griswold
- 1999
(Show Context)
Citation Context ...ard loom weaves flowers and leaves." -- Ada Augusta, Countess of Lovelace 1 Introduction Aspect-oriented programming (AOP) offers the promise of "additive, rather than invasive, software dev=-=elopment" [CG99]-=-: development in which various aspects of the program can be considered and added one by one without wholesale modification of existing code. Approaches to AOP have been variously formulated and have ... |

7 |
Consequence Verification of Flowcharts
- Clark, Emden
- 1981
(Show Context)
Citation Context ...es of) variables in the process language. Our translation is thus similar in some respects to translations of imperative languages into logic programming languages, dating back to Clark and van Emden =-=[CvE81]-=-. We first present the syntax of a simple imperative aspect-oriented language, and then explore the translation of each of the syntactic constructs of the language into processes and process definitio... |

3 |
A practical hyperspace application: Lessons from the option-processing task
- Carver
- 2000
(Show Context)
Citation Context ...n), turn(off ), unlock(door). Figure 5 shows HW and HWR, two versions of a more complex program, corresponding to the option-processing task cited by Carver as a model task for separation of concerns =-=[Car00]. The two programs have i-=-dentical process definitions but different root processes. The program HW takes no options; it prints the message "hello world". The program HWR takes one option, "rev" (for "... |

1 | A practicalhyperspace application: Lessons from the optionprocessing task - Carver - 2000 |