Fall Semester 2007 Demeter Seminar Regular time: Thursday 10 - 11.30 am, 366 West Village H ======================================================================= This semester the Demeter Seminar will discuss topics related to Adaptive and Aspect-Oriented Programming and Domain Specific Languages. In addition, we will have some talks on solving SAT problems. The AP/AOP topics will revolve around studying visitors: Interposition Visitors, Cloning Visitors, Functional Visitors, etc. to program in a more structure-shy way, pushing in the same direction as Ralf Laemmel's and Simon Peyton Jones's "Scrap your boilerplate" in Haskell. Speaker: Bryan Chadwick: December 6, 2007: Title: Flexible Software by Favoring Implicit Calls over Explicit Calls: Algorithms for a New Programming Style. ================================================ Both specifications as well as implementations of functional and object-oriented approaches suffer from two major problems: they explicitly mention by name the subterms or subobjects that need to be traversed (explicit traversal problem) and they explicitly mention parameters that are passed down to subterms or subobjects, whether or not they are relevant to the current term or object (explicit argument problem). The reason for the two problems is a low-level use of "follow the structure" or "follow the grammar". We have a Demeter Seminar mailing list: Please sign up at: https://lists.ccs.neu.edu/bin/listinfo/demeter-seminar Seminar home page: http://www.ccs.neu.edu/research/demeter/seminar/seminar.html =================== seminars below are in chronological order The first seminar is on Tuesday September 18, also in 366. Speaker: Christine Hang Title: The Promise of Polynomial-based Local Search to Boost Boolean MAX-CSP Solvers Abstract. We propose a novel family of polynomial-based local search algorithms for MAX-CSP. From this family, we present an optimal, fast algorithm, called Evergreen local search (ELS ). We evaluate ELS as a preprocessor for state-of-the-art MAX-CSP and MAX-SAT solvers which shows promising improvement in speed and quality. Joint work with Ahmed Abdelmeged, Daniel Rinehart and Karl Lieberherr Planned talks: September 27: Bryan Chadwick: Structure-shy Interpreters Adaptive Programming allows us to add 'operations' to a Class/Data hierarchy without adjusting the internals of the individual data-types. This talk, more of a presentation followed by a group discussion, will explore those ideas and their use in building a simple interpreter for a subset of Scheme. The hope is that as we add language constructs, we can make simple additions to our interpreting visitors to adapt to the new changes. In addition I hope to have a discussion of SYB related transformations, and how we can abstract a bit to do all sorts of interesting things when/while adding new features to our mini language. ====================================================================== October 4: Ahmed Abdelmeged: Interposition and Cloning Visitors Interposition Visitors are normal visitors equipped with interposition variables. Interposition variables allow for easier expression of non-tail-recursive computations over recursive object structures by giving easy access to information in enclosing objects. Clone visitors allow for more flexible cloning of object structure where it is possible to specify: "How deep do you wanna clone". By implementing a generic clone visitor as a composition of visitors rather than a single visitor, we gain more opportunities to reuse the cloning code in the context of local-to-local transformations. October 25: Therapon Skotiniotis: Making AP safer %%Adaptive Programming (AP) allows programmers to view OO data structures as %%graphs and define operations over these data structures using strategies %%(navigation specification) and visitors (computation). Strategies can %%abstract over nodes, edges and whole sub-graphs allowing changes to the %%underlying graph topology. After such a change in the underlying data %%structure it is not always clear whether the attached computation performs %%as expected. We provide new semantics for a core subset of AP where strategies act as interfaces between visitors and the underlying data structure. Visitors are restricted and can only refer to nodes mentioned in the strategy. Furthermore we restrict strategy definitions to select paths in our data structure that are pair-wise expansions of the strategy's paths. These two restrictions provide WYSIWYG paths and we show how our type system enforces these restrictions. We also add constraints, annotations, allowing programmers to express, and statically verify, invariants about the data structure's topology. We show that our new semantics statically rejects programs that current AP tools (DemeterJ, DJ and DAJ) allow and cause unexpected visitor behavior. Specifically, our new AP semantics guarantee that -- all constraints attached to the visitor are true for the given program's class hierarchy. and, if a visitor gets to execute then: -- it will reach a target object whose type matches the type of the target node in the strategy path -- the visitor is guaranteed to visit objects with the same type as the nodes selected by the strategy path and in the same order as in the strategy path. Bryan Chadwick: November 29: ================================================ Both specifications as well as implementations of functional and object-oriented approaches suffer from two major problems: they explicitly mention by name the subterms or subobjects that need to be traversed (explicit traversal problem) and they explicitly mention parameters that are passed down to subterms or subobjects, whether or not they are relevant to the current term or object (explicit argument problem). The reason for the two problems is a low-level use of "follow the structure" or "follow the grammar". The approach by Chadwick et al., called DemeterF (F for functional), is a functional approach where a traversal is parameterized by 3 objects: a transformer, a combiner and an augmentor. http://www.ccs.neu.edu/research/demeter/biblio/func-trav-comb.html Two topics will be presented: 1. Type Checking of DemeterF programs, 2. Fast implementation of combine method selection in DemeterF. January: Ahmed Abdelmeged: Structure-shy Programming in Haskell We have a Demeter Seminar mailing list: Please sign up at: https://lists.ccs.neu.edu/bin/listinfo/demeter-seminar Seminar home page: http://www.ccs.neu.edu/research/demeter/seminar/seminar.html