archives

Quantified, Typed Events for Improved Separation of Concerns


Home 

About 

Browse 

Search 

Register 

Subscriptions 

Deposit Papers 

Help
    

Rajan, Hridesh and Leavens, Gary (2007) Quantified, Typed Events for Improved Separation of Concerns. Technical Report 07-14, Computer Science, Iowa State University.

Full text available as:Adobe PDF

There is a later version of this eprint available: Click here to view it.

Abstract

Implicit invocation and aspect-oriented languages provide related but distinct mechanisms for separation of concerns. Implicit invocation languages have explicitly announced events, which runs registered observer methods. Aspect-oriented languages have implicitly announced events, called "join points," which run method-like but more powerful advice. A limitation of implicit invocation languages is their inability to refer to a large set of events succinctly. They also lack the expressive power of advice, and require code to manage event registration and announcement. Aspect-oriented languages also have several limitations, including the potential for fragile dependence on syntactic structure that may hurt maintainability, limits in the set of join points and the reflective contextual information that they make available. Quantified, typed events solve all these problems. They extend implicit invocation languages with a key idea from aspect-oriented languages: the ability to quantify over events (join points). Programmers declare named event types that contain information about the names and types of event arguments (exposed context). An event type declaratively identifies an expression as an event. This event type can then be used to quantify over all such events. Event types reduce the coupling between the observers and the set of events, and similarly between the advising and advised code.

Keywords:implicit-invocation, aspect-oriented programming languages, quantification, pointcut, join point, context exposure, type checking, event types, event expressions
Subjects:Software: SOFTWARE ENGINEERING (K.6.3): Design Tools and Techniques
Software: PROGRAMMING LANGUAGES
Software: PROGRAMMING LANGUAGES: General
Software: PROGRAMMING LANGUAGES: Formal Definitions and Theory (D.2.1, F.3.1-2, F.4.2-3)
Software: PROGRAMMING LANGUAGES: Language Constructs and Features (E.2)
ID code:00000552
Deposited by:Hridesh Rajan on 17 July 2007

Available Versions of This Paper



Contact site administrator at: ssg@cs.iastate.edu