DEMETER SEMINAR Adaptive and and Aspect-Oriented Programming -------------------------------------------------------------------- The Demeter seminar meets this quarter on Wednesday in 149 Cullinane Hall, Northeastern University, Boston from 4.00-5.30 p.m. The topic this quarter will be related to Adaptive Programming http://www.ccs.neu.edu/home/lieber/demeter.html Aspect-Oriented Programming http://www.ccs.neu.edu/home/lieber/AOP.html and topics related to the DARPA project AIRES http://www.dist-systems.bbn.com/projects/AIRES/ in collaboration with the QuO group at BBN. For students: To get some background for the seminar you should read the first four chapters of http://www.ccs.neu.edu/research/demeter/biblio/dem-book.html and a selection of the papers at: http://www.ccs.neu.edu/research/demeter/AOP/eth-seminar/reading-list.html ========================= Wednesday, October 4, 2000 An Introduction to Adaptive and Aspect-Oriented Programming Karl Lieberherr Aspect-oriented programming (AOP) uses new programming constructs to control tangling in software. AspectJ, http://aspectj.org/ a toolkit supporting AOP in Java, uses connectors, called pointcuts, to define events of interest, and uses components, called advice, to specify what to execute at those events. DJ, http://www.ccs.neu.edu/research/demeter/DJ/ http://www.ccs.neu.edu/research/demeter/DJ/docs/api/edu/neu/ccs/demeter/dj/package-summary.html a library supporting adaptive programming (AP) in Java, uses connectors, called traversals, to define events of interest, and uses components, called visitors, to specify what to execute at those events. The talk will focus on the re-design of the DJ library designed and implemented by Doug Orleans based on an implementation by Josh Marshall. We use DJ to give a succinct introduction to adaptive programming using the concepts of AP: ClassGraph, ObjectGraph, Strategy, TraversalGraph, ObjectGraphSlice, and Visitor that also happen to be classes in DJ. An interesting aspect of DJ is that severely crosscutting concerns (structured multi-object collaborations) are expressed in plain Java without any extension. This is not too surprising because the DJ Java library makes heavy use of reflection. The discussion period will circle around ideas of integrating the connectors and components of AspectJ and DJ into a unified language. Note: The DJ refered to here is different than the DJ used in Crista Lopes PhD thesis on AOP: http://www.ccs.neu.edu/home/lieber/theses-index.html Seminar notes for this and previous seminars are in: http://www.ccs.neu.edu/research/demeter/seminar/