10.07.2015 Views

all FREECO11-workshop-papers.pdf - trese

all FREECO11-workshop-papers.pdf - trese

all FREECO11-workshop-papers.pdf - trese

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

tual machine). For example, some level of reflection is a necessity.Secondly, composability: a key question is whethermultiple composition operators, in particular when appliedto the same location (e.g. same field), will still yield thedesired behavior. From our experience with Co-op we distinguishseveral issues for composing composition operators:• Multiple operators should be applicable to the sameprogram location.• The semantics of co-located operators should be compatible:this may require a proper design of the compositionoperator library.• The order of applying composition operators may makea difference.• Some operators are by design incompatible.• Hence one needs to express ordering, exclusion and coexistenceconstraints between operators. These can begeneral constraints, or application-specific constraints.We plan to perform additional case studies of implementingcomposition mechanisms in Co-op/II and to improve ourprototype in several ways. As mentioned already in section3, often developers depend on specific compositionalsemantics for program elements like classes, methods andfields they define. For instance, it may be relevant thatone class inherits from another or that a certain field canonly be accessed loc<strong>all</strong>y. For reasons of good readability thecomposition mechanism should be declared together withthe definition of the program element then. One possibilityto achieve this while staying flexible and independent ofkeywords is to use annotations that can be accessed by compositionoperators. Co-op/II does not yet have full supportfor annotations on method and field declarations, but canonly use a few hard-wired ones. To enable the full benefitof annotations, we intend to further extend Co-op/II’s reflectivecapabilities to access annotations in the definition ofbindings.Currently, the only supported condition that can be usedin constraints is whether a named binding is applicable ornot. But sometimes, it is necessary to disable a bindingwhen a certain predicate is satisfied. Consider for examplethe SelectiveFieldAccess composition operator which is supposedto disable the binding that realizes to share fields betweenthe super and the sub class. In our implementationwe had to use a workaround which is to define a binding inSelectiveFieldAccess that is applicable when the sharedFieldBindingshould be ignored and then define a constraint between thesetwo. We plan to improve the expressiveness of conditionalconstraints in Co-op/II.9. REFERENCES[1] L. Bergmans, W. Havinga, and M. Akşit. First-classcompositions–defining and composing object andaspect compositions with first-class operators.Transactions on Aspect-Oriented SoftwareDevelopment, Special issue on Modularity Constructsin Programming Languages, TBD.[2] G. Bracha and G. Lindstrom. Modularity meetsinheritance. In In Proc. International Conference onComputer Languages, pages 282–290. IEEE ComputerSociety, 1992.[3] C. Clifton, G. T. Leavens, C. Chambers, andT. Millstein. Multijava: modular open classes andsymmetric multiple dispatch for java. In Proceedings ofthe 15th ACM SIGPLAN conference onObject-oriented programming, systems, languages, andapplications, OOPSLA ’00, pages 130–145, New York,NY, USA, 2000. ACM.[4] A. J. de Roo, M. F. H. Hendriks, W. K. Havinga,P. E. A. Durr, and L. M. J. Bergmans. Compose*: alanguage- and platform-independent aspect compilerfor composition filters. In K. Mens, M. van den Brand,A. Kuhn, H. Kienle, and R. Wuyts, editors, FirstInternational Workshop on Academic SoftwareDevelopment Tools and Techniques, Cyprus, July2008. No publisher.[5] E. Gamma, R. Helm, R. Johnson, and J. Vlissides.Design Patterns: Elements of ReusableObject-Oriented Software. Addison Wesley, Reading,Massachusetts, 1994.[6] W. K. Havinga, L. M. J. Bergmans, and M. Akşit. Amodel for composable composition operators:Expressing object and aspect compositions withfirst-class operators. In Proceedings of AOSD, pages145–156. ACM, March 2010.[7] W. K. Havinga, C. M. Bockisch, and L. M. J.Bergmans. A case for custom, composable compositionoperators. In Proceedings of the 1st InternationalWorkshop on Composition: Objects, Aspects,Components, Services and Product Lines, Rennes,France, volume 564 of Workshop Proceedings, pages45–50. CEUR-WS, March 2010.[8] K. Ostermann and M. Mezini. Object-orientedcomposition untangled. In Proc. OOPSLA ’01 Conf.Object Oriented Programming Systems Languages andApplications, pages 283–299. ACM Press, 2001.[9] R. Ramachandran, D. J. Pearce, and I. Welch.AspectJ for multilevel security. In Y. Coady, D. H.Lorenz, O. Spinczyk, and E. Wohlstadter, editors,Proceedings of the Fifth AOSD Workshop on Aspects,Components, and Patterns for Infrastructure Software,pages 13–17, Bonn, Germany, Mar. 20 2006. Publishedas University of Virginia Computer Science TechnicalReport CS–2006–01.[10] B. G. Ryder, M. L. Soffa, and M. Burnett. The impactof software engineering research on modernprogamming languages. ACM Transactions onSoftware Engineering and Methodology, 14:431–477,October 2005.[11] A. Taivalsaari. On the notion of inheritance. ACMComput. Surv., 28(3):438–479,1996.[12] É. Tanter. Aspects of composition in the Reflex AOPkernel. In Proceedings of the 5th InternationalSymposium on Software Composition (SC 2006),volume 4089 of lncs, pages 98–113, Vienna, Austria,Mar. 2006. Springer-Verlag.[13] É. Tanter and J. Fabry. Supporting composition ofstructural aspects in an AOP kernel. Journal ofUniversal Computer Science, 15(3):620–647,2009.[14] D. Wagelaar and L. Bergmans. Using a concept-basedapproach to aspect-oriented software design. InM. Glandrup, P. Tarr, S. Clarke, and F. Akkawi,editors, Workshop on Aspect Oriented Design —Identifying, Separating and Verifying Concerns in theDesign (AOSD-2002), Mar. 2002.[15] Xerox Corporation. The AspectJ programming guide.http://www.eclipse.org/aspectj/doc/released/progguide,2003.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!