Communications of the ACM
Eos: instance-level aspects for integrated system design
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Classpects: unifying aspect- and object-oriented language design
Proceedings of the 27th international conference on Software engineering
Ptolemy: A Language with Quantified, Typed Events
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Unifying aspect- and object-oriented design
ACM Transactions on Software Engineering and Methodology (TOSEM)
Modular aspect-oriented design with XPIs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the tenth international conference on Aspect-oriented software development
Hi-index | 0.00 |
This tutorial will provide an introduction to Ptolemy. Ptolemy is a programming language whose goals are to improve a software engineer's ability to separate conceptual concerns, while preserving encapsulation of object-oriented code and the ability of programmers to modularly reason about their code. In particular, Ptolemy's features are useful towards modularization of cross-cutting concerns. A cross-cutting concern is a requirement whose implementation is spread across and mixed with the code of other requirements. There has been attempts to improve separation of cross-cutting concerns, e.g. by aspect oriented and implicit-invocation languages, but none give software developers textual separation of concerns and modular reasoning at the same time. Ptolemy has both these properties important for scalable software engineering. Ptolemy's event types provide a well-defined interface between object-oriented code and cross-cutting code. This in turn enables separate type-checking and compilation. Ptolemy also provides a novel and practical specification mechanism that we call translucid contracts. A translucid contracts allows developers to reason about the control effects of the object-oriented code and cross-cutting code modularly. This tutorial will proceed by discussing the goals of the Ptolemy programming language. We will then discuss Ptolemy's programming features and its specification features by way of several hands-on exercises. We will conclude with pointers to ongoing work on design, implementation and verification of Ptolemy programs.