Eos: Instance-Level Aspects for Integrated System Design

By: Hridesh Rajan and Kevin 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. 2003. Eos: instance-level aspects for integrated system design. ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering (New York, NY, USA, 2003), 297–306.

BibTeX Reference

@inproceedings{rajan2003eos,
  author = {Hridesh Rajan and Kevin Sullivan},
  title = {Eos: instance-level aspects for integrated system design},
  booktitle = {ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering},
  year = {2003},
  isbn = {1-58113-743-5},
  pages = {297--306},
  location = {Helsinki, Finland},
  doi = {http://doi.acm.org/10.1145/940071.940111},
  publisher = {ACM Press},
  address = {New York, NY, USA},
  entrysubtype = {conference},
  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.
  }
}