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 contains information for the current quarter. The seminar is suitable for students who have taken COM3360 or are currently taking COM1205. The seminar is also suitable for advanced software developers in industry or academia who have read some of our papers/book on Adaptive Programming. (See http://www.ccs.neu.edu/research/demeter) Depending on the interests of the industrial participants we will add a specific technology transfer component to the seminar. ============================================================ Friday, Feb. 14 Presentation 1: Salil Pradhan: An introduction to Java Beans Salil has explored Java technology over the last few months and he will tell us about component based software development in the Java world. Salil will soon leave us to engage himself in advanced software development in Silicon Valley. Salil has an MS from our college. Presentation 2: Doug Orleans has implemented edge wrappers. They are a powerful technique to enlarge the set of points where a program can be modified in a structure-shy way. We will discuss edge visitors and their adaptive change scopes which depend on both a class graph and a traversal. The scopes are adaptive since an edge wrapper may contain wild card symbols. We will discuss the semantics of edge wrappers and the relationship between vertex and edge wrappers. Geoff Hulten is working on a copy visitor generator which will be used to demonstrate the usefulness of edge visitors. ========================================================== Feb. 21: NO SEMINAR ========================================================== Planned talk: Friday, Feb. 28 Boaz Patt-Shamir: A new technique to compile adaptive programs This is the one we plan to put into Demeter/Java. ------------------------------ Karl Lieberherr: Parametric polymorphism required for adaptive programming To make adaptive programs more reusable, we need to investigate suitable parameterization mechanisms. For example, we need to pass traversals as arguments. Question 4 in the midterm of my software design and development class at URL: http://www.ccs.neu.edu/research/demeter/course/exams/m-1205-w97 serves as an inspiration. ========================================================== To express object traversal strategies the following notation is useful: Strategy = "from" Classes Constraints "to" Classes. Constraints = List(Constraint). Constraint = ["bypassing" ClassesOrEdges] ["through" ClassesOrEdges]. Example: from {A,B} bypassing *,x,* through I bypassing *,y,* through J to {C,D} An efficient algorithm to compile such traversal specifications into efficient code will be presented and it will be argued to be correct. The above specification language is planned to be put into Demeter/Java. The advantages of this new notation are: - The join is now just syntactic sugar. - It offers a useful version of merge which can be compiled efficiently. - We can indicate in which order we want to go through intermediate edges. Friday, Feb. 7 Mitchell Wand will talk about Microsoft's Component Object Model and how we can lift our set of ideas to that level. ========================================================== Planned talk: Friday, Feb. 21 Boaz Patt-Shamir: To express object traversal strategies the following notation is useful: Strategy = "from" Classes Constraints "to" Classes. Constraints = List(Constraint). Constraint = ["bypassing" ClassesOrEdges] ["through" ClassesOrEdges]. Example: from {A,B} bypassing *,x,* through I bypassing *,y,* through J to {C,D} An efficient algorithm to compile such traversal specifications into efficient code will be presented and it will be argued to be correct. The above specification language is planned to be put into Demeter/Java. The advantages of this new notation are: - The join is now just syntactic sugar. - It offers a useful version of merge which can be compiled efficiently. - We can indicate in which order we want to go through intermediate edges. ----------------------------------- Friday, January 24, 1997 Karl Lieberherr Semantics of visitors: Incremental versus overriding semantics Implementing adaptive programs: Using strongly-connected components and flattening without information loss to compile adaptive programs Pattern Language for AP http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv --------------- Progress reports on projects: Doug Orleans Demeter/Java in Demeter/Java -------------- Kedar Patankar AP Studio: A graphical user interface for AP ============================================================ Plans for future seminars: ============================================================ Friday, January 31, 1997 NO SEMINAR =========================================================== Friday, Feb. 7 Mitchell Wand will talk about the Component Object Model and how we can lift our set of ideas to that level. See: http://www2.umassd.edu/coursepages/SoftwareArchitecture/paul-com/page2.html for information about COM from our friends in Amherst. =========================================================== Friday, January 17, 1997 Karl Lieberherr Class Attachment and Traversal Polymorphism We will discuss two orthogonal concepts which work together synergistically. Class attachment is about lifting context attachment to the class level while generalizing what can be attached. This leads to a modular mechanism for composing behavior. Traversal polymorphism is parametric polymorphism which allows to pass around traversals to class definitions. This leads to a higher level of reuse. Class attachment seems to fit well into Demeter/Java. For an example, see: /proj/asl/lieber/papers/lift-attachment-to-class-level/context-lifted We will also have a discussion of the patterns in: http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv ============================================================== Friday, January 10, 1997 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. The theme is: Hosts should be sensitive to the needs of their visitors (continuation of Ann Landers' column) A proposal from Debra Bacon at Hewlett Packard in Vancouver, Canada. ------- We will also give a summary of DEM @ARTICLE{DEM:houser, AUTHOR = "Chris Houser", TITLE = "Manual and compiler for a terse and modular language DEM", JOURNAL = sigplan, YEAR = 1996, PAGES = "41-51", MONTH = "December", VOLUME = 31, NUMBER = 12 } an independent implementation of a small Demeter/C++. It is refreshing to see the ideas explained in a very direct way. The implementation is only 100 lines of Perl 5 code. ------- Feature interaction and context objects. Feature interaction is an important problem in building telephone systems. We will look at an example and how we can express feature interaction in terms of context objects. The example will suggest a way to generalize context objects. ============================================================== 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 Distributed Systems Seminar (Professors Cooperman, Matta and Patt-Shamir) for topics of interest to the Demeter seminar participants.