The Demeter Seminar meets this quarter from 10-12 on Friday morning in 206 Egan Center. For more info: http://www.ccs.neu.edu/research/demeter/seminar/seminar.txt Dec. 13: NO SEMINAR! For a validation of the Law of Demeter in the IEEE Transactions on Software Engineering, see: http://www.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/LawOfDemeter-confirmed-by-experiments.txt Dec. 20: Karl Lieberherr Boaz Patt-Shamir: The State Passing Compiler To improve composability of Adaptive Programs, Karl Lieberherr and Salil Pradhan developed an efficient compiler which handles the navigation strategy language: from-to, bypassing (edges, vertices), through (edges, vertices) _without_ any restrictions on the class graphs (except compatibility). The new compiler improves the efficiency of a compiler proposed by Palsberg, Patt-Shamir and Lieberherr (ftp://ftp.ccs.neu.edu/pub/people/lieber/compile-adapt-2.ps) by an order of magnitude and it removes the consistency constraint from the compiler in our TOPLAS paper (ftp://ftp.ccs.neu.edu/pub/research/demeter/documents/papers/PXL94-adaptive-soft.ps). The State Passing Compiler is a probably a little slower than the TOPLAS compiler developed and implemented (in Demeter/C++) with Cun Xiao. The State Passing compiler has not been proven correct and has not yet been implemented in Demeter/Java but efforts are on the way in both directions. A draft of the paper (written by Boaz Patt-Shamir) is at: /proj/asl/lieber/papers/new-state-passing-compiler/paper.ps Dec. 5: Doug Orleans: Jack: and how it is integrated with Demeter/Java Doug has moved quickly to integrate SUN's LL(k) parser generator with Demeter/Java. --------- Doug Orleans and Karl Lieberherr: Doug uses the knowledge path concept in the implementation of Demeter/Java. An alternative would have been to flatten the class dictionaries and use the ordinary path concept. We will discuss the trade-offs. -------- Karl Lieberherr: Discussion of Doug Lea's new book: Concurrent programming in Java We will look at some of the topics covered in the book and how they are relevant to concurrent traversals and the coordination language in Crista's work. ======================================== NEW PLACE: THE BEAUTIFUL NEW EGAN CENTER ======================================== Nov. 22: Boaz Patt-Shamir: Traversals and multiple threads Boaz will present his ideas on using multiple threads in adaptive programs. Michael Werner: Title: Discretionary Database Access Control Using Program-Motivated Views Abstract: A program using a database should be granted access on a "Need To Know" basis. The items it needs to access can be largely determined by examination of the program source. The program source could be in a language such as C++, a Demeter propagation pattern combined with a class dictionary, or in an Itinerary list. An object model with provisions for views is described. After a review of discretionary access control techniques, mechanisms are described for generating view subschemas from program source. The talk will be based on a paper in progress. It is available in: ~werner/itinerary/access-control-views.ps Reminder: Of great interest to Demeter seminar participants are John Reif's talk on Models for Molecular Parallelism on Friday, Nov. 22, 1pm, 206 Egan. http://www.cs.duke.edu/~reif/paper/mole.ps One interesting theme of the talk will be how to solve NP-complete problems efficiently by mixing chemical substances. Gregor Kiczales' presentation on Aspect-Oriented Programming on Monday, Nov. 25 in 206 Egan at 2pm. (to be announced soon) Crista's presentation on Monday, Nov. 25, on D (already announced). Both John Reif and Gregor Kiczales are very distinguished researchers in their respective fields. It is a pleasure to have Crista back for two days next week. ===================== Nov. 15: No seminar. Jens Palsberg at Purdue has updated his paper on class graph inference. Recommended reading. ftp://ftp.ccs.neu.edu/pub/people/lieber/class-graph-inf-P96.ps Next week: Michael Werner: Title: Discretionary Database Access Control Using Program-Motivated Views -- Karl Nov. 8: Boaz Patt-Shamir and Karl Lieberherr Coordination of traversals and visitors Rationale: The ECOOP '94 paper of Lopes/Lieberherr proposed to separate coordination of activities as a separate concern from Structure and Structure-shy Behavior. We would like to follow up on this idea and find out what the needs are for a coordination language for traversals and visitors. Specifically, Boaz Patt-Shamir recently proposed a weaving mechanism to translate mutual exclusion constraints and behavior specifications into Java code using nested synchronized statements. Crista Lopes also explores the synchronization patterns in greater detail in her wrok at Xerox PARC. On Monday, Nov. 25 from 9.30 - 10.30, she will present her work here at Northeastern. There will be a brief introduction into Java threads. -- Karl NEXT WEEK THERE IS NO SEMINAR. Nov 22: Michael Werner: Title: Discretionary Database Access Control Using Program-Motivated Views Abstract: A program using a database should be granted access on a "Need To Know" basis. The items it needs to access can be largely determined by examination of the program source. The program source could be in a language such as C++, a Demeter propagation pattern combined with a class dictionary, or in an Itinerary list. An object model with provisions for views is described. After a review of discretionary access control techniques, mechanisms are described for generating view subschemas from program source. ==================================================== Nov. 1: Linda Seiter will present the paper: @INPROCEEDINGS{spl:context-conf, AUTHOR = "Linda M. Seiter and Jens Palsberg and Karl J. Lieberherr", TITLE = "{Evolution of Object Behavior using Context Relations}", BOOKTITLE = "SIGSOFT, Symposium on Foundations of Software Engineering", YEAR = "1996", ADDRESS = "San Francisco", PAGES = "", EDITOR = "David Garlan", PUBLISHER = "ACM Press" } and we will have a discussion of the relationship between context objects and visitors with Doug Orleans. See: A comparison between Demeter/Java and context objects: ftp://ftp.ccs.neu.edu/pub/people/lieber/demeter-java-context.txt Time permitting: We will discuss current design issues for Demeter/Java with Doug Orleans, Samuel Binoy and Kedar Patankar: Role of Java Meta Object Protocol. Implementation of generic functions, like g_equal and g_print. Minimizing recompilation costs using binary compatibility rules. Should all generated traversal functions be private? Traversals as objects? On-the-fly traversals. t = new Traversal("to B") creates a traversal object and t.go(o,{v1,v2}) would be a traversal of o to B with visitors v1,v2. Design issues for graphical user interface Plans for future meetings: Boaz Patt-Shamir: Traversals and multiple threads Pablo Tejeda: Integrating D, Crista's language, and Demeter/Java Karl Lieberherr: Traversals of functional edges: controlled blurring of the separation of structure and behavior We will discuss task-based extension and retraction of UML class diagrams ===================== Oct. 25: Karl Lieberherr: Organizing Traversal Specifications, Visitors and Grammars Traversals, visitors and grammars are three key aspects of adaptive programs (there are others like communication, exceptions, synchronization, etc.) to be considered later. Visitors describe the important activities of the program. The activities are glued together in two steps, first using architectural glue, called traversal specifications and then implementation glue, called grammars. In this presentation we will discuss new ways of organizing visitors and traversal specifications which we have not explored yet. Next week, Nov. 1: Linda Seiter will present the paper: @INPROCEEDINGS{spl:context-conf, AUTHOR = "Linda M. Seiter and Jens Palsberg and Karl J. Lieberherr", TITLE = "{Evolution of Object Behavior using Context Relations}", BOOKTITLE = "Symposium on Foundations of Software Engineering", YEAR = "1996", ADDRESS = "San Francisco", PAGES = "", EDITOR = "David Garlan", PUBLISHER = "ACM Press" } and we will have a discussion of the relationship between context objects and visitors with Doug Orleans. See: A comparison between Demeter/Java and context objects: ftp://ftp.ccs.neu.edu/pub/people/lieber/demeter-java-context.txt ===================== Oct. 18: Mitchell Wand: Professor Wand will first give a lecture on loop invariants. They are a useful tool which can be successfully applied during software development. The lecture will then focus on invariants for tree traversals with application to the container capacity checking problem. Two different solutions will be shown to be correct using loop invariants. This lecture will be for a general audience and does not assume any background in adaptive programming. Indeed the first part of the lecture is from COM3351, Principles of Programming Languages. In later seminars we will investigate how we can express loop invariants for adaptive programs. This will help us to control customization of adaptive programs: If a class graph violates an invariant, the class graph cannot be used without modifying the adaptive program. Karl Lieberherr: (time permitting) Further impressions of OOPSLA. Oct. 12: Linda Seiter: (time permitting) Linda will present the paper: @INPROCEEDINGS{spl:context-conf, AUTHOR = "Linda M. Seiter and Jens Palsberg and Karl J. Lieberherr", TITLE = "{Evolution of Object Behavior using Context Relations}", BOOKTITLE = "Symposium on Foundations of Software Engineering", YEAR = "1996", ADDRESS = "San Francisco", PAGES = "", EDITOR = "David Garlan", PUBLISHER = "ACM Press" } which she will present soon in San Francisco. ---- Doug Orleans: The current state of Demeter/Java and evolution plans. ---- Mitchell Wand: Invariants for tree traversals ---- Karl Lieberherr: What was interesting at OOPSLA '96? ===================================================================== Oct. 5: Boaz Patt-Shamir: Open problems in the design of adaptive distributed systems. Doug Orleans: The current state of Demeter/Java and evolution plans. Karl Lieberherr: (time permitting) The Demeter Method with Visitors (instead of Propagation Patterns) ===================================================================== The Demeter Seminar has the following purposes: 1. To disseminate information about useful ideas for developing software which is easier to evolve and maintain. 2. To discuss ongoing work related to the interests of seminar participants. Currently, a project called: Simplifying Software Evolution through Adaptive Programming within a larger project called: Evolutionary Design of Complex Systems receives a lot of attention. Currently five faculty members, Linda Seiter (Boston College), Karl Lieberherr, Jens Palsberg (Purdue University), Boaz Patt-Shamir and Mitchell Wand are affiliated with the project. 3. To create a nurturing environment for software engineering/ programming language research. The seminar helped to develop ideas like the Law of Demeter, succinct traversal specs, and adaptive programming with context objects. The seminar is suitable for someone who has taken COM3360 or who is taking it currently. During some weeks we might not meet. Also watch the Programming Language Seminar (Professors Wand and Clinger) and the new Distributed Systems Seminar (Professors Cooperman, Matta and Patt-Shamir) for topics of interest to the Demeter seminar participant. The agenda for our first meeting is: Speakers: Karl Lieberherr and Mitchell Wand 1. Open problems in evolutionary design of software aspect-oriented programming (AOP) This is about better ways of building distributed systems. A homework about AOP is below. Crista Lopes is a Ph.D. student at Northeastern. This time the homework is intended for me :-) since I will participate at an AOP workshop at Xerox PARC before OOPSLA. As you can see from the message below, AOP is an approach very much under development. adaptive programming scoped visitors with temporary host extension exception handling threads 2. Java Implementation Projects We will discuss several interesting projects which are ready for implementation using the new Demeter/Java tool developed by Doug Orleans. ============ From lopes@parc.xerox.com Tue Sep 24 13:21:50 1996 From: Cristina Lopes Subject: AOP meeting Dear AOP friends, In advance of our meeting in a couple of weeks, we would like to ask you to write a short position paper (1--2 pages) about AOP. The topic of the paper is completely open; it can be a statement, or a list of questions, or a critique or anything else. (At the end of this message is a list of topics that may be suggestive.) ... By asking everyone to write and read these papers ahead of time, our goal is to be able to focus the meeting as much as possible around discussion, without taking a lot of time for discussion. Looking forward to seeing you soon, Gregor, Crista & the AOP group @ PARC ... The AOP paper (very short and medium length) is still at: http://www.parc.xerox.com/aop --------------------------------------------------------------- Basic issues what is AOP what is new about it what is it similar to what is it good for Process issues relation to previous paradigms who else would be interested experiments to consider collaborations to consider how will AOP develop Technical issues what are key technical issues how to identify aspects aspect description languages orthogonality of aspects