Open Systems Laboratory at Illinois

Reflecting on aspect-oriented programming, metaprogramming, and adaptive distributed monitoring

By Bill Donkervoet and Gul Agha. In FMCO, volume 4709 of Lecture Notes in Computer Science, 246–265. Springer, 2006.

Publisher Link:
http://dx.doi.org/10.1007/978-3-540-74792-5_11

Abstract

Metaprogramming and computational reflection are two related techniques that allow the programmer to change the semantics of a program in a modular fashion. Although the concepts have been explored by researchers for some time, a form of metaprogramming, namely aspect-oriented programming, is now being used by some practitioners. This paper is an attempt to understand the limitations of different forms of computational reflection in concurrent and distributed computing. It specifically studies the use of aspect-oriented programming and reflective actor libraries, and their relation to full reflection. We choose distributed monitoring as the primary example application because its requirements nicely fit the abilities of the two systems as well as illustrate their limitations.

This research has been supported in part by NSF under grant CNS 05-09321 and by ONR under DoD MURI award N0014-02-1-0715.

BibTeX

@inproceedings{conf/fmco/DonkervoetA06,
    author = "Donkervoet, Bill and Agha, Gul",
    editor = "de Boer, Frank S. and Bonsangue, Marcello M. and Graf,
              Susanne and de Roever, Willem P.",
    title = "Reflecting on Aspect-Oriented Programming,
             Metaprogramming, and Adaptive Distributed Monitoring",
    booktitle = "FMCO",
    crossref = "conf/fmco/2006",
    ee = "http://dx.doi.org/10.1007/978-3-540-74792-5_11",
    pages = "246-265",
    year = "2006",
}

@proceedings{conf/fmco/2006,
    editor = "de Boer, Frank S. and Bonsangue, Marcello M. and Graf,
              Susanne and de Roever, Willem P.",
    title = "Formal Methods for Components and Objects, 5th
             International Symposium, FMCO 2006, Amsterdam, The Netherlands,
             November 7-10, 2006, Revised Lectures",
    isbn = "978-3-540-74791-8",
    publisher = "Springer",
    series = "Lecture Notes in Computer Science",
    volume = "4709",
    year = "2007",
}