The abstraction mechanisms of most current programming languages ---
subroutines, procedures, functions, objects, classes, modules and APIs
--- can all be thought of as fitting into a generalized procedure call
model. The design style they support is one of breaking a system down
into parameterized components that can be called upon to perform a
function.
But many systems have properties that don't necessarily align with the
system's functional components. Failure handling, persistence,
communication, replication, coordination, memory management, real-time
constraints, and many others, are aspects of a system's behavior that
tend to cut-across groups of functional components. While they can be
thought about and analyzed relatively separately from the basic
functionality, programming them using current component-oriented
languages tends to result in these aspects being spread throughout the
code. The source code becomes a tangled mess of instructions for
different purposes.
This "tangling" phenomenon is at the heart of much needless complexity
in existing software systems. It increases the dependencies between
the functional components. It distracts from what the components are
supposed to do. It introduces numerous opportunities for programming
errors. It makes the functional components less reusable. In short, it
makes the source code difficult to develop, understand and evolve.
A number of researchers have begun working on approaches to this
problem that allow programmers to express each of a system's aspects
of concern in a separate and natural form, and then automatically
combine those separate descriptions into a final executable form using
automatic tools. These approaches have been called Aspect-Oriented
Programming (AOP).
The purpose of this workshop is to bring together researchers and
practitioners working on a wide range of AOP techniques, including
languages, tools, frameworks, programming styles, etc.
A special theme of this workshop is the exploration of different
visual approaches to presenting the different aspects of concern in a
system. Participants are especially encouraged to pursue this in
position papers.
The preferred method for submission is the interactive method.
E-Mail
Call for participation
Mechanisms for defining and composing abstractions are essential
elements of programming languages. They allow programs to be composed
up from smaller units, and they support design styles that proceed by
decomposing a system into smaller and smaller sub-systems.
Topics of interest
Participants will be asked to write a short position paper. The
workshop will be structured around presentations and extended
discussions. The topics for discussion will include:
Attendance
Attendance to the workshop is limited to facilitate lively discussions and the exchange of ideas. Participation will be by invitation only, based on the organizing committee's evaluation of the submission. Accepted participants will be notified by May 1, 1997.
Submission
Prospective participants should submit a 3-6 page position paper or
experience report, preferably in html, postscript or plain ASCII format
, no later than April 15, 1997.
In addition, each prospective participant should submit a question or topic of
key importance to this workshop. This will facilitate the planning of
successful working groups.
All submissions must include the full contact information of at least one author. Notification of acceptance will be by May 1, 1997.
Reviewers
Pointers of Interest
ECOOP '97: General Home Page
Aspect-Oriented Programming Home page
TRESE home page
Reuse Contracts
AOP and Adaptive programming