Publication: Classpects: Unifying Aspect- and Object-Oriented Language Design
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
University of Virginia, Department of Computer Science
Abstract
The contribution of this work is the design, implementation, and early evaluation of a programming language that unifies classes and aspects. We call our new module construct the classpect. We make three basic claims. First, we can realize a unified design without significantly compromising the expressiveness of current aspect languages. Second, such a design improves the conceptual integrity of the programming model. Third, it significantly improves the compositionality of aspect modules, expanding the program design space from the two-layered model of AspectJ-like languages to include hierarchical structures. To support these claims, we present the design and implementation of Eos-U, an AspectJ-like language based on C# that supports classpects as the basic unit of modularity. We show that Eos-U supports layered designs in which classpects separate integration concerns flexibly at multiple levels of composition. The underpinnings of our design include support for aspect instantiation under program control, instance-level advising, advising as a general alternative to object-oriented method invocation and overriding, and the provision of a separate join-point-method binding construct.
Description
Original submission date: 2012-10-29T19:37:52Z
Subjects
Citation
Rajan, Hridesh, and Kevin Sullivan. "Classpects: Unifying Aspect- and Object-Oriented Language Design." University of Virginia Dept. of Computer Science Tech Report (2004).