Event Type Polymorphism

By: Rex D. Fernando, Robert Dyer, and Hridesh Rajan

PDF Download Download Paper
Slides

Abstract

Subtype polymorphism is an important feature available in most modern type systems which makes code reuse and specialization possible. Recent works on separation of crosscutting concerns have created event interfaces (types) to decouple subjects from handlers. Extending the notion of subtyping to these event interfaces is a logical step. In this paper, we define event type polymorphism in the context of the Ptolemy language. Ptolemy allows declaring quantified, typed events which provide an interface between subjects and handlers. We add the notion of polymorphic event types to the Ptolemy language, defining a subtype relation among event types which in turn allows for both depth and width subtyping with regard to event context. Since Ptolemy only has explicit event announcement, our semantics is simpler and easier to reason about when compared to previously defined approaches. We also give the first formally defined static semantics for polymorphic events as well as demonstrate its usefulness via examples.

ACM Reference

Fernando, R.D. et al. 2012. Event Type Polymorphism. Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages, FOAL, Potsdam, Germany (2012), 33–38.

BibTeX Reference

@inproceedings{FernandoDyerRajan2012,
  author = {Rex D. Fernando and Robert Dyer and Hridesh Rajan},
  title = {Event Type Polymorphism},
  booktitle = {Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages, FOAL, Potsdam, Germany},
  pages = {33--38},
  year = {2012},
  publisher = {{ACM}},
  editor = {Shmuel Katz and Gary T. Leavens and Hidehiko Masuhara},
  doi = {10.1145/2162010.2162020},
  abstract = {
  Subtype polymorphism is an important feature available in most modern type
  systems which makes code reuse and specialization possible. Recent works on
  separation of crosscutting concerns have created event interfaces (types) to
  decouple subjects from handlers. Extending the notion of subtyping to these
  event interfaces is a logical step. In this paper, we define event type
  polymorphism in the context of the Ptolemy language. Ptolemy allows declaring
  quantified, typed events which provide an interface between subjects and
  handlers. We add the notion of polymorphic event types to the Ptolemy
  language, defining a subtype relation among event types which in turn allows
  for both depth and width subtyping with regard to event context. Since Ptolemy
  only has explicit event announcement, our semantics is simpler and easier to
  reason about when compared to previously defined approaches. We also give the
  first formally defined static semantics for polymorphic events as well as
  demonstrate its usefulness via examples.},
}