Hi Bill: Thank you for filling me in. >From bdelav@hotmail.com Tue Dec 1 17:42:38 1998 >From: "Bill de la Vega" >To: ichenp@ccs.neu.edu >Cc: lieber@ccs.neu.edu >Subject: Re: Help (AP Lib tg)! > >Sorry it took a while to reply. My ISP was out. > >> .... >> interface class graph icg >> application class graph ccg >> strategy sicg: strategy for icg >> refined strategy rsicg1: for mapping 1 of icg to ccg >> refined strategy rsicg2: for mapping 2 of icg to ccg >> >> For example: >> sicg: from A to B // counts all Bs >> rsicg1: from A bypassing X to B // counts some Bs >> rsicg2: from A bypassing Y to B // counts some other Bs >> >>Q : >>(1) In the cd of APPC spec, we can get icg, ccg (I suppose >>icg=ccg in our case) and sicg. But I don't know where to >>find rsicg1 and rsicg from the cd. > >The cd file I recieved from the professor doesn't describe a >language that specifies the CCG, the mapping, or refined >strategies (that accompany the mapping). That language still >needs to be created. Why not use theone from the midterm? /proj/adaptive/www/course/exams/m-3360-f98/midterm answers > >In the discussions I heard it wasn't clear but I believe there >will be 3 languages: >1. APPC (very nearly described in the cd file from Prof.) >2. CCG (essentially the same language as that used for cd files) >3. Mapping (which will include associated refined strategies) > > >> > A strategy transducer is specified by a tuple (s1, s2), >> > where s1 and s2 are strategy graphs. It will be >> > instantiated by a class graph g. s1 is a strategy for >> > traversing g and s2 is a refinement of s1 also for >> > traversing g. The nodes of s1 and s2 are contained in the >> > nodes of g. The transducer takes as input a traversal >> > history Hist(o, s1, g), obtained by traversing object o >> > of g according to s1 and creating all node and edge >> > events including edge events for s1 (Bill: does your >> > traversal bean produce those?), and produces as output a >> > traversal history Hist(o,(s1,s2),g) that consists only of >> > node and edge events of the positive strategy graph of >> > s2. More precisely, an s2 edge event is produced each >> > time the target of the edge is reached on a path from the >> > source of the edge and satisfying the constraint map. >> >>Q (2) So I'm working on this strategy transducer now (I think it was >>called event translator before). I'm not sure where it fits in. Prof. >>gave me a seperate cd, >> >> EventTranslation = List(Condense). >> Condense = "condense" Strategy. >> ..... >> >>So how can I coordinate this program with the rest (APPCs, >>traversal bean..)? > >The traversal bean reverse engineering isn't done yet. But, a >test program would look something like this: > >StrategyTransducer st = new StrategyTransducer(); >Traversal t = new Traversal(); >t.addTraversalListener(st); >t.traverse(...); > >Where you write StrategyTransducer.java & I write Traversal.java. >Once you call addTraversalListener(), the object st is registered with >t. Then when traverse() is called t will call these methods in the >StrategyTransducer: > >void receiveTraversalEvent(EdgeEvent edgeEv); >void receiveTraversalEvent(NodeEvent nodeEv); > Bill is right. But lets make it simpler for I-Chen: Let's make it a self-contaioned problem where input is text and output is text. The text describes the event objects. I-Chen: Write a program that does the following translation: Example: Class graph: A = B C. B = D. C = E F. D = G. G = Z. E = Z. F = Z. Object traversed: A-object (there is only one) Strategy: S1: A -> * S2: A -> D D -> Z S1 S2 before A before A before ->A,B before ->A,D before B before ->B,D before D before D before ->D,G before ->D,Z before G before ->G,Z before Z before Z after Z after Z after ->G,Z after G after ->D,G after ->D,Z after D after D after B before C ... ... after ->A,B after ->A,D after A after A The input and output language has a cd like: Event = Kind NodeOrEdge. Kind : Before | After. Before = "before". After = "after". NodeOrEdge : Node | Edge. Edge = "->" Node Node. Node = Ident. You write a program: Input: cd, s1 e1 = List(Event) Output: e2 = List(Event) e2 contains only the events at the s1 level. Notice the simplification: only one strategy! Let me know when you are done with this self-contained problem. Then we can bringin the beans if there is time left. Let me know if this problem formulation is not clear. > >>Q >>(3) The mapping process is still very confusing to me, when is it done? >>I mean, like when the APPC beans are created or ...? > >During our discussion on Friday afternoon 11/20/98, I was told that the >traversal bean should traverse the objects of the CCG. So the events >that you recieve will be over the CCG. > That is correct. > >(Note: I had previously thought that the Traversal Bean would generate >events over the ICG, and the Adapter Bean would handle the actual CCG >objects.) This would not work so well because the same traversal might drive lots of APPCs each one listening to some other part of the traversal. > >This means the traversal bean must know about the icg, ccg & the >mapping. The strategy transducer needs to know about the ccg & the >refined strategy. > >> I think we should just make the Summing example work as our goal. >>so there will be two APPC beans, (Summing and Container?, not sure ), >>one traversal bean, the strategy transducer and a Test program >>(Main.java) which creates all the objects above. What are the remaining questions regarding the Summing example? I was hoping it would be done by now. :-) > >I assume you mean reverse engineer those beans (not generate them from >the APPC language). It may be as far as we get. The Traversal Bean is >not finished yet. It is unfortunate, as I was looking forward to doing >something more with Demeter Java. > yes, that was the idea. Mira and David have pitched in quite a bit of code to start so that you can do some of the translation with Demeter/Java. Maybe the best thing now is that Bill does the summing example (with more help from Mira and David, if needed) and I-Chen the transducer described earlier. > > >Professor Lieberherr, >I cced you so you could get a little update as well as respond if I'm >mistaken. > >______________________________________________________ >Get Your Private, Free Email at http://www.hotmail.com > -- Karl