Publication:
Classpects: Unifying Aspect- and Object-Oriented Language Design

Loading...
Thumbnail Image

Journal Title

Journal ISSN

Volume Title

Publisher

University of Virginia, Department of Computer Science

Research Projects

Organizational Units

Journal Issue

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).

Collections

Endorsement

Review

Supplemented By

Referenced By