Hi Mike: Thank you for your answer explaining the differences. I checked with Paul and he provided the update below. It seems good to keep a chanel open with Paul to avoid duplication of effort. Please can you send a copy of your thesis proposal to Paul? He might have some good feedback while you write your thesis. -- Karl From pberg@valhalla.cs.wright.edu Mon Nov 17 12:32:32 1997 Date: Mon, 17 Nov 1997 12:32:50 -0500 (EST) From: Paul Bergstein MIME-Version: 1.0 Subject: your tool Karl Lieberherr writes: > Hi Paul: > > I asked Mike Werner to compare his thesis proposal with your thesis. > Do you have a tool which implements extensions of your > thesis ideas? Would like to check for overlap. > > -- Karl > Hi Karl, We are building a tool that implements a number of extensions to my thesis ideas. So far, we have a graphical front end written in Java, and most of the transformations from my thesis implemented in C++. We haven't yet integrated the transformations with the user interface. Mike is correct that the thesis considers only a "toy" language, called CDG, and object structures that are trees. These limitations were imposed to facilitate correctness proofs and demonstrate a sound theoretical basis for the approach. A number of people have correctly noted that the use of grammars is unnecessary for the implementation, and not a limitation of the method. Still we keep them, since they are the basis of the theory, allow us to generate parsers for the user's objects, and should help us apply the method outside the context of evolution (e.g. code reuse by mapping functionality to a second, independently designed, class structure). So far, we support booleans, conditionals, and loops, in addition to the features described in the thesis. Our intension is to continue adding features until we support most of the features of "real" languages such as C++. We have kept the CDG syntax for ease of parsing, but there is no barrier except a little time to supporting C++ or Java syntax for the same features. We are focusing more on C++ than on Java since we can map our support for multiple-inheritance directly. We are currently working on adding a "new" operator and removing the "tree" restriction. The main problem is with transformations that move parts up the "part-of" hierarchy. Methods that access the moved parts can obtain indirect access through the parent object in a tree. If the object structure is not a tree, it is sometimes, but not always, possible to find a suitable parent object. In the case where a parent object can't be found, we rely on some user interaction. Best regards, -- Paul >From wernerm@wit.edu Mon Nov 17 09:49:32 1997 >Received: from acad.wit.edu (wit.edu [204.91.236.3]) > by amber.ccs.neu.edu (8.8.6/8.7.3) with SMTP id JAA27752; Mon, 17 Nov 1997 09:49:16 -0500 (EST) >Received: from 8314 ([172.20.10.134]) by acad.wit.edu with SMTP; > Mon, 17 Nov 1997 9:49:28 -0500 >Message-Id: <2.2.32.19971117145509.008eb3f8@acad.wit.edu> >X-Sender: wernerm@acad.wit.edu (Unverified) >X-Mailer: Windows Eudora Pro Version 2.2 (32) >Mime-Version: 1.0 >Content-Type: text/plain; charset="us-ascii" >Date: Mon, 17 Nov 1997 09:55:09 -0500 >To: wand@ccs.neu.edu, kenb@ccs.neu.edu, clinger@ccs.neu.edu, > lieber@ccs.neu.edu, e.guerrieri@ieee.org >From: Michael Werner >Status: R > >Karl Lieberherr writes> > >>I noticed that you might underrate Paul's work: He does syntax-preserving >>transformations. This allows him to change the class graphs drastically >>as long as the (annotated) class graphs define the same language. >>And you can choose the annotations to your liking; they are an auxiliary >>device. >>Still he can update the programs automatically (at least for the regular >>case). > >>This might catch some of your transformations. > >Sorry about the delay in responding. I had to take another look at Paul's >thesis. > >Paul uses a grammatical approach. He uses an ECDG (Extended Class >Dictionary Graph) which allows classes to have syntax (annotations) as >parts. The ECDG can be viewed as a grammar which accepts tree-shaped >objects as sentences. Two ECDG's may differ but still accept the same >sentences, i.e. they define the same language. Paul's automatic program >transformations apply in this context. In particular his objects must be >trees. I believe that to extend this approach to more general types of >objects would be non-trivial. > >Also, Paul demonstrates his transformations on a "toy" language which he >calls the CDG language. My work prototypes using the industry language >Java. Although the prototype programs will have some restrictions as to the >Java programs they can accept, this is more to ease the programming effort >than a fundamental limitation in the approach. My goal is to have the >prototype programs serve as the basis for building robust and efficient >industry tools. > > Mike >Michael Werner >(617) 989-4143 wernerm@acad.wit.edu werner@ccs.neu.edu > >Wentworth Institute of Technology >550 Huntington Avenue room 8-314 >Boston, MA 02115 > > >