This page describes work originally carried out under NSF grant CCF-04-8078 on semantics and reasoning for aspect-oriented programs. The principal investigator was Gary T. Leavens, and much of the research was being carried out by Curtis Clifton (who was a Ph.D. student during the grant period). Since then professors Clifton and Leavens have continued to collaborate on this topic, and it has also involved collaboration with James Noble and Hridesh Rajan. The work with Prof. Rajan has been partially supported under NSF grants CNS-0627354, CCF-0429567, CNS-07-09217, CNS 08-08913, CCF-10-17262, and CCF-1017334.
Overview
This project aims to advance the theory and practice of aspect-oriented software development. Like polymorphic method invocation in object-oriented programming, aspect-oriented programming achieves its advances in code modularization by means of additional indirection at run time. Aspect-oriented languages allow the declarative insertion of code at multiple, arbitrary points in the execution of a program. The arbitrary and declarative nature of this indirection means that one must, in general, have whole-program knowledge to reason about the dynamic execution of an aspect-oriented program.
How can one efficiently do static reasoning about a program's execution in the face of such global indirection? In object-oriented programming this concern is addressed through the discipline of behavioral subtyping. Behavioral subtyping places a constraint on subtype programmers: overriding methods in a subtype must satisfy the specification of the overridden supertype methods. In exchange for programming within this constraint, clients of the supertype may efficiently reason about message sends to supertype instances without worrying about the effects of overriding methods in unseen subtypes. Such a discipline allows programmers to reason abstractly about a message send in terms of the receiver's static type. Using the discipline of behavioral subtyping, one can recover static, modular reasoning, while enjoying all of the object-oriented paradigm's code modularization benefits.
The problem addressed by this project is how to efficiently do static reasoning in aspect-oriented programs, while retaining most of the new paradigm's code benefits in terms of decreased scattering and tangling. The project aims to identify a design discipline for aspect-oriented programming that solves this problem. Such a design discipline must deal with the multi-dimensional separation of concerns enabled by aspect-oriented features.
The technical approach will be to create the design discipline, using an analogy to behavioral subtyping, and a small aspect-oriented programming language to support it. By producing prototype tools and applying them in case studies, the researchers will experimentally validate the utility of the language and design discipline. A formal study of specification and verification techniques will demonstrate soundness of static, modular reasoning in the language and design discipline.
Papers
The following papers are related to the project. They are listed in reverse chronological order.
- Ptolemy website, which has a download of our compiler for the language Ptolemy described in the papers by Rajan and Leavens.
- José Sánchez and Gary T. Leavens. Reasoning Tradeoffs in Languages with Enhanced Modularity Features. In Modularity 2016: Proceedings of the 15th International Conference on Modularity., ACM, NY, pages 13-24. http://doi.acm.org/10.1145/2889443.2889447.
- Henrique Rebêlo, Gary T. Leavens, Mehdi Bagherzadeh, Hridesh Rajan, Ricardo Lima, Daniel M. Zimmerman, Márcio Cornélio, and Thomas Thüm. AspectJML: modular specification and runtime checking for crosscutting contracts. In MODULARITY '14 Proceedings of the 13th international conference on Modularity, 2014. http://dx.doi.org/10.1145/2577080.2577084
- José Sánchez and Gary T. Leavens. Separating Obligations of Subjects and Handlers for More Flexible Event Type Verification. In Software Composition: 12th International Conference, SC 2013, Budapest, Hungary, June 2013, Proceedings, Springer-Verlag, Lecture Notes in Computer Science, Vol. 8088, pages 65-80. The original publication is available at link.springer.com from http://dx.doi.org/10.1007/978-3-642-39614-4_5.
-
Mehdi Bagherzadeh,
Hridesh Rajan,
Gary T. Leavens, and
Sean Mooney.
Translucid Contracts: Expressive Specification and Modular Verification for Aspect-Oriented Interfaces.
In Proceedings of the tenth international conference on Aspect-oriented software development, Porto de Galinhas, Pernambuco, Brazil, ACM, 2011, pp. 141-152.
http://doi.acm.org/10.1145/1960275.1960293.
Also Department of Computer Science, Iowa State University, TR #10-02a, March 2010, revised July 2010. [abstract] [Preprint PDF] - Mehdi Bagherzadeh, Gary T. Leavens, and Robert Dyer. Applying translucid contracts for modular reasoning about aspect and object oriented events. In Proceedings of the 10th international workshop on Foundations of Aspect-Oriented languages (FOAL'11), pages 1-5. http://doi.acm.org/10.1145/1960510.1960517 [Preprint PDF].
- Hridesh Rajan, Gary T. Leavens, Robert Dyer, and Mehdi Bagherzadeh. Modularizing crosscutting concerns with Ptolemy (Tutorial at AOSD'11). In Proceedings of the tenth international conference on Aspect-oriented software development companion, pages 61-62. http://doi.acm.org/10.1145/1960314.1960332.
-
Hridesh Rajan and
Gary T. Leavens.
Ptolemy: A Language with Quantified, Typed Events.
In Jan Vitek (ed.),
ECOOP 2008 -- Object-Oriented Programming: 22nd European Conference,
pages 155-179.
Volume 5142 of
Lecture Notes in Computer Science,
Springer-Verlag, July, 2008.
The original publication is available at springerlink.com or directly from http://dx.doi.org/10.1007/978-3-540-70592-5_8.
Also Department of Computer Science, Iowa State University, TR #07-13a, July 2007, revised October 2007. [abstract] [Preprint PDF] [Preprint PS] - Hridesh Rajan and Gary T. Leavens. Quantified, Typed Events for Improved Separation of Concerns. Department of Computer Science, Iowa State University, TR #07-14d, July 2007, revised October 2007, May 2008. [abstract] [PDF] [PS]
-
Gary T. Leavens and
Curtis Clifton.
Multiple Concerns in Aspect-Oriented Language Design: A Language Engineering Approach to Balancing Benefits, with Examples.
In SPLAT '07: Proceedings of the 5th workshop on Engineering properties of languages and aspect technologies. http://doi.acm.org/10.1145/1233843.1233849
Also Department of Computer Science, Iowa State University, TR #07-01a, February 2007. [abstract] [PDF] [PS] -
Curtis Clifton,
Gary T. Leavens, and
James Noble.
MAO: Ownership and Effects for more Effective Reasoning about Aspects.
In ECOOP 2007 -- Object-Oriented Programming: 21st European Conference,
pages 451-475.
Volume 4609 of
Lecture Notes in Computer Science,
Springer-Verlag, July, 2007.
The original publication is available at springerlink.com or directly from http://dx.doi.org/10.1007/978-3-540-73589-2_22.
Also Department of Computer Science, Iowa State University, TR #06-35a, December 2006, revised April 2007. [abstract] [Preprint PDF] [Preprint PS] [Case study] [Gzipped tar file for Case study] -
Curtis Clifton and
Gary T. Leavens.
MiniMAO1: Investigating the Semantics of Proceed.
Science of Computer Programming, 63(3):321-374,
Elsevier, Dec. 2006.
http://dx.doi.org/10.1016/j.scico.2006.02.009.
Preprint: Department of Computer Science, Iowa State University, TR #05-01, January 2005. [abstract] [PDF] - Curtis Clifton and Gary T. Leavens. A Design Discipline And Language Features For Modular Reasoning In Aspect-Oriented Programs. Department of Computer Science, Iowa State University, TR #05-23, December 2005. [abstract] [PDF] [PS]
- Curtis Clifton. A design discipline and language features for modular reasoning in aspect-oriented programs. Department of Computer Science, Iowa State University, TR #05-15, July 2005. [abstract] [PDF]
- Curtis Clifton, Gary T. Leavens, and Mitchell Wand. Parameterized Aspect Calculus: A Core Calculus for the Direct Study of Aspect-Oriented Languages. Department of Computer Science, Iowa State University, TR #03-13, October 2003. [abstract] [PDF]
- Curtis Clifton, Gary T. Leavens, and Mitchell Wand. Formal Definition of the Parameterized Aspect Calculus. Department of Computer Science, Iowa State University, TR #03-12, October 2003. [abstract] [PDF]
- Curtis Clifton and
Gary T. Leavens.
Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy.
In Software
engineering Properties of Languages for Aspect Technologies (SPLAT!)
workshop at AOSD 2003.
Also Department of Computer Science, Iowa State University, TR #03-01, January 2003. [abstract] [PDF] [Postscript]. - Curtis Clifton and Gary T. Leavens. Spectators and Assistants: Enabling Modular Aspect-Oriented Reasoning. Department of Computer Science, Iowa State University, TR #02-10, October 2002. [abstract] [PDF] [Postscript].
Talks
Gary T. Leavens gave a talk "Concerning Efficient Reasoning in AspectJ-like Languages" at the Aspects, Dependencies and Interactions (ADI) 2007 workshop in Berlin on July 30, 2007. You may be interested in seeing Gary's slides (in PDF format) or his talk's abstract.
Gary T. Leavens was the "discussant" at
OOPSLA 2006 for
Friedrich Steimann's
essay "The Paradoxical Success of Aspect-Oriented Programming"
(OOPSLA 2006 Proceedings).
You may be interested in seeing
Gary's slides (in PDF format).
A paper that reflects some of the points of Gary's discussion is
TR07-01a
(see above).
Other
See the Ptolemy website for more about the Ptolemy language.
See also Curtis Clifton's web page and Gary T. Leavens's research page for less directly related publications.
Last update $Date: 2022/08/18 01:35:44 $