Quantified, Typed Events for Improved Separation of Concerns
By Hridesh Rajan and Gary T. Leavens
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 maintain
ability, 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.
Bibliographic Information
@InProceedings{Rajan-Leavens-08,
author = {Hridesh Rajan and Gary T. Leavens},
title = {Ptolemy: A Language with Quantified, Typed Events},
booktitle = {ECOOP '08: 22nd European Conference on Object-Oriented Programming},
year = {2008},
month = {July},
location = {Paphos, Cyprus},
}
@TechReport{Rajan-Leavens07,
Author = {Hridesh Rajan and Gary T. Leavens},
Title = {Quantified, Typed Events for Improved Separation of Concerns},
institution = {Iowa State University, Department of Computer Science},
year = 2008,
number = {07-14d},
month = May,
URL = "ftp://ftp.cs.iastate.edu/pub/techreports/TR07-14/TR.pdf",
Annote = "29 references."
note = "Contains full semantics, types rules and soundness proofs",
}
@TechReport{Rajan-Leavens07a,
Author = {Hridesh Rajan and Gary T. Leavens},
Title = {Ptolemy: A Language of Quantified, Typed Events},
institution = {Iowa State University, Department of Computer Science},
year = 2007,
number = {07-14},
month = jul,
URL = "ftp://ftp.cs.iastate.edu/pub/techreports/TR07-13/TR.pdf",
Annote = "14 references."
}
Note:Previous version appeared as technical report
06-32,
Computer Science, Iowa State University, Sep 2006.