Modularizing crosscutting concerns with ptolemy

  • Authors:
  • Hridesh Rajan;Sean Mooney;Gary T. Leavens;Robert Dyer;Rex D. Fernando;Mohammad Ali Darvish Darab;Bryan Welter

  • Affiliations:
  • Iowa State University, Ames, IA, USA;Iowa State University, Ames, IA, USA;University of Central Florida, Orlando, FL, USA;Iowa State University, Ames, IA, USA;Iowa State University, Ames, IA, USA;Iowa State University, Ames, IA, USA;Iowa State University, Ames, IA, USA

  • Venue:
  • Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this demonstration we show our language Ptolemy, which allows for separation of crosscutting concerns while maintaining modular reasoning. We demonstrate the benefits of Ptolemy over existing aspect-oriented languages and implicit invocation designs. Ptolemy's quantified, typed events provide a flexible quantification mechanism that acts as a declarative interface between object-oriented code and crosscutting code. Events are announced explicitly and declaratively. Event types allow for compile-time errors and avoid the fragile pointcut problem of aspect-oriented languages. The interface provided by event types also allows for modular reasoning, without considering all aspects in the system. The declarative event announcement allows avoiding writing tedious and error-prone boiler-plate code that implicit invocation designs require. We demonstrate several realistic examples that showcase the features of the Ptolemy language and show use of Ptolemy's compiler. The demonstrated compiler is built on top of the OpenJDK Java compiler (javac), providing full backwards compatibility with existing Java sources as well as ease of integration into the existing tool chains. We show how to integrate the compiler into both existing Ant and Eclipse builds.