From lopes@parc.xerox.com Mon Oct 26 18:38:43 1998 Received: from alpha.xerox.com (firewall-user@alpha.Xerox.COM [13.1.64.93]) by amber.ccs.neu.edu (8.9.1a/8.9.1) with SMTP id SAA09418; Mon, 26 Oct 1998 18:38:41 -0500 (EST) Received: from roo.parc.xerox.com ([13.2.16.72]) by alpha.xerox.com with SMTP id <54996(2)>; Mon, 26 Oct 1998 15:38:36 PST Received: by roo.parc.xerox.com id <575350>; Mon, 26 Oct 1998 15:38:29 -0800 Sender: Cristina Lopes From: Cristina Lopes To: Karl Lieberherr Cc: lopes@parc.xerox.com, dougo@ccs.neu.edu, jayantha@ccs.neu.edu, johan@ccs.neu.edu, lorenz@ccs.neu.edu Subject: Re: grammar for AspectJ? In-Reply-To: <199810262313.SAA17845@stockberg.ccs.neu.edu> References: <199810262313.SAA17845@stockberg.ccs.neu.edu> Message-Id: <98Oct26.153829pst.575350@roo.parc.xerox.com> Date: Mon, 26 Oct 1998 15:38:24 PST Status: R Hi Karl, But syntax is not that important, and we change it very often. For your student project you can make lots of simplifications, such as ignoring packages, etc. The semantics is important. Up until now the semantics has been presented through examples, and the tutorial is the only doc we have. In the absence of decent documentation, the better way to find out what the semantics is is to use the weaver. Eric is writing the first draft of the spec which will probably be included in the next release. Sorry for not being able to help. Please tell your students to email me if they have questions about the semantics of AspectJ. -Crista Karl Lieberherr writes: > Hi Crista: > > Doug and David suggested the following student project: > http://www.ccs.neu.edu/research/demeter/course/f98/projects/AspectJ/translators.txt > > Do you have a grammar or even a cd for AspectJ? > > -- Karl > ================== > > AOP projects: > > Aspect-Oriented Programming is an approach to programming > that has its roots in Open Implementation, Adaptive Programming > and Cristina Lopes PhD thesis (Northeastern University supported > by Xerox PARC). > > Links about AOP: > > ftp://ftp.ccs.neu.edu/pub/people/lieber/theses/lopes/ > > http://www.ccs.neu.edu/home/lieber/AOP.html > > http://www.ccs.neu.edu/home/lieber/connection-to-aop.html > > Both the Xerox PARC team lead by Gregor Kiczales and the > Northeastern team have developed a generic aspect weaving language. > Think of those languages as assembly languages for aspect-oriented > programming. > The Northeastern language is called ADJ > (Aspect language of Demeter/Java) and the Xerox PARC > language is called AspectJ. > We call it ADJ because ADJ is an integral > part of Demeter/Java to deal with aspects. > ADJ is older than AspectJ > and was used at Northeastern to implement both COOL and RIDL as well > as Demeter/Java itself. > The purpose of this project is to compare the two languages by translating > from one language to the other. > > We focus only on the part of AspectJ that does not deal with > instantiating aspects. This part allows for static modifications > of classes. And only this part is also covered by ADJ. > In this sense AspectJ is more powerful than ADJ because it supports > run-time weaving. For the static modifications, ADJ has probably > more features than AspectJ. > > Information about ADJ is at: > http://www.ccs.neu.edu/home/jayantha/usermanual/node6.html > > Information on AspectJ is available at: > http://www.parc.xerox.com/spl/projects/aop/ > > A copy of the OOPSLA '98 tutorial is at: > http://www.ccs.neu.edu/research/demeter/tutorials/AspectJ/oopsla98 > > > + Translating from AspectJ into ADJ. > > Tasks: > 1. Write a class dictionary for AspectJ > > 2. For ADJ use: > http://www.ccs.neu.edu/research/demeter/DemeterJava/use/latest-demjava/weave/ > file: weaver.cd > > 3. Write a Demeter/Java program to translate the parts of AspectJ > that can be translated. > > 4. Test your translator and write a brief report about the differences > between AspectJ and ADJ. > > > + Translating from ADJ to AspectJ > > similar to above. > > >