Eos: Instance-Level Aspects for Integrated System Design

By: Hridesh Rajan and Kevin J. Sullivan

PDF Download Download Paper

Abstract

This paper makes two contributions: a generalization of AspectJ-like languages with first-class aspect instances and instance-level advising, and a mapping of the mediator style for integrated system design into this space. We present Eos as a prototype language design and implementation. It extends C# with AspectJ-like constructs, first-class aspect instances and instance-level advising. These features enable a direct mapping of mediators to aspect instances, with modularity improved, insofar as components need not declare, announce, or register for events.

ACM Reference

Rajan, H. and Sullivan, K.J. 2003. Eos: Instance-Level Aspects for Integrated System Design. Proceedings of the 11th ACM SIGSOFT Symposium on Foundations of Software Engineering held jointly with 9th European Software Engineering Conference, ESEC/FSE, Helsinki, Finland (2003), 291–306.

BibTeX Reference

@inproceedings{RajanSullivan2003,
  author = {Hridesh Rajan and Kevin J. Sullivan},
  title = {Eos: Instance-Level Aspects for Integrated System Design},
  booktitle = {Proceedings of the 11th ACM SIGSOFT Symposium on Foundations of Software Engineering held jointly with 9th European Software Engineering Conference, ESEC/FSE, Helsinki, Finland},
  pages = {291--306},
  year = {2003},
  publisher = {{ACM}},
  editor = {Jukka Paakki and Paola Inverardi},
  doi = {10.1145/940071.940111},
  abstract = {
  This paper makes two contributions: a generalization of AspectJ-like languages
  with first-class aspect instances and instance-level advising, and a mapping
  of the mediator style for integrated system design into this space. We present
  Eos as a prototype language design and implementation. It extends C# with
  AspectJ-like constructs, first-class aspect instances and instance-level
  advising. These features enable a direct mapping of mediators to aspect
  instances, with modularity improved, insofar as components need not declare,
  announce, or register for events.},
}