Example similarity map    Similar Patents and Articles Toggle Patent Map

Contact The DL Team Contact Us | Switch to tabbed view

top of pageABSTRACT

Domain specific aspect-oriented language extensions offer unique capabilities to deal with a variety of cross cutting concerns. Ideally, one should be able to use several of these extensions together in a single program. Unfortunately, each extension generally implements its own specialized weaver and the different weavers are incompatible. Even if the weavers were compatible, combining them is a difficult problem to solve in general, because each extension definesits own language with new semantics. In this paper we present a practical composition framework, named A<scp>wesome</scp>, for constructing a multi-extension weaver by plugging together independently developed aspect mechanisms. The framework has a component-based and aspect-oriented architecture that facilitates the development and integration of aspect weavers. To be scalable, the framework provides a default resolution of feature interactions in the composition. To be general, the framework provides means for customizing the composition behavior. Furthermore, to be practically useful, there is no framework-associated overhead on the runtime performance of compiled aspect programs. To illustrate the A<scp>wesome</scp> framework concretely, we demonstrate the construction of a weaver for a multi-extension AOP language that combines Cool and AspectJ. However, the composition method is not exclusive to Cool and AspectJ-it can be applied to combine any comparable reactive aspect mechanisms.

top of pageAUTHORS



Author image not provided  Sergei Kojarski

No contact information provided yet.

Bibliometrics: publication history
Publication years2003-2008
Publication count8
Citation Count63
Available for download6
Downloads (6 Weeks)4
Downloads (12 Months)11
Downloads (cumulative)3,934
Average downloads per article655.67
Average citations per article7.88
View colleagues of Sergei Kojarski


Author image not provided  David H. Lorenz

No contact information provided yet.

Bibliometrics: publication history
Publication years1994-2017
Publication count55
Citation Count292
Available for download42
Downloads (6 Weeks)13
Downloads (12 Months)156
Downloads (cumulative)13,850
Average downloads per article329.76
Average citations per article5.31
View colleagues of David H. Lorenz

top of pageREFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD'04), Mancaster, UK, Mar. 17--21 2004. ACM Press.
 
3
4
 
5
6
 
7
C. Clifton and G. T. Leavens. Obliviousness, modular reasoning, and the behavioral subtyping analogy. In Proceedings of the AOSD'03 Workshop on Software-engineering Properties of Languages for Aspect Technologies (SPLAT'03), Boston, Massachusetts, Mar. 18 2003. AOSD'03, ACM Press.
 
8
K. De Volder, J. Brichau, K. Mens, and T. D'Hondt. Logic meta-programming, a framework for domain-specific aspect programming languages. Unpublished, 2001.
 
9
 
10
Proceedings of the 17th European Conference on Object-Oriented Programming (ECOOP'03), number 2743 in Lecture Notes in Computer Science, Darmstadt, Germany, July 21--25 2003. Springer Verlag.
 
11
Proceedings of the AOSD'05 Workshop on Foundations of Aspect-Oriented Languages (FAOL'05), Chicago, IL, USA, Mar. 14 2005. ACM Press.
 
12
 
13
R. E. Filman and D. P. Friedman. Aspect-Oriented programming is quantification and obliviousness. In P. Tarr, L. Bergmans, M. Griss, and H. Ossher, editors, Proceedings of the OOPSLA 2000 Workshop on Advanced Separation of Concerns. Department of Computer Science, University of Twente, The Netherlands, 2000.
 
14
R. E. Filman and D. P. Friedman. Aspect-Oriented programming is quantification and obliviousness. In Filman et al. {12}, pages 21--35.
 
15
16
17
 
18
Proceedings of the 21st International Conference on Software Engineering (ICSE'99), Los Angeles, California, May 1999. IEEE Computer Society.
 
19
R. Jagadeesan, A. Jeffrey, and J. Riely. An untyped calculus for aspect oriented programs. In ECOOP'03 {10}, pages 54--73.
 
20
 
21
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented programming. In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP'97), number 1241 in Lecture Notes in Computer Science, pages 220--242, Jyväskylä, Finland, June 9--13 1997. Springer Verlag.
22
23
 
24
 
25
K. Lieberherr and D. H. Lorenz. Coupling Aspect-Oriented and Adaptive Programming. In Filman et al. {12}, pages 145--164.
 
26
 
27
C. V. Lopes. D: A Language Framework for Distributed Programming. PhD thesis, Northeastern University, 1997
 
28
D. H. Lorenz and S. Kojarski. Understanding aspect interactions, co-advising and foreign advising. In Proceedings of ECOOP'07 Second International Workshop on Aspects, Dependencies and Interactions, pages 23--28, Berlin, Germany, July 30 2007.
 
29
H. Masuhara and G. Kiczales. Modeling crosscutting in Aspect-Oriented mechanisms. In ECOOP'03 {10}, pages 2--28.
 
30
H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of Aspect-Oriented programs. In FAOL'05 {11}, pages 17--26.
 
31
 
32
33
34
 
35
36
 
37
38
39
 
40
41
42

top of pageCITED BY

19 Citations

 
 
 
 

top of pageINDEX TERMS

The ACM Computing Classification System (CCS rev.2012)

Note: Larger/Darker text within each node indicates a higher relevance of the materials to the taxonomic classification.

top of pagePUBLICATION

· Proceeding
Title OOPSLA '07 Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications table of contents
General Chairs Richard P. Gabriel IBM Research, USA
Program Chairs David F. Bacon IBM Research, USA
Cristina Videira Lopes University of California, Irvine, USA
Guy L. Steele, Jr. Sun Labs, USA
Pages 515-534
Publication Date2007-10-21 (yyyy-mm-dd)
Sponsors SIGPLAN ACM Special Interest Group on Programming Languages
ACM Association for Computing Machinery
PublisherACM New York, NY, USA ©2007
ISBN: 978-1-59593-786-5 Order Number: 548071 doi>10.1145/1297027.1297065
Conference SPLASHSystems, Programming, and Applications SPLASH logo
Paper Acceptance Rate 33 of 156 submissions, 21%
Overall Acceptance Rate 524 of 2,250 submissions, 23%
Year Submitted Accepted Rate
OOPSLA '99 152 30 20%
OOPSLA '01 145 27 19%
OOPSLA '02 125 25 20%
OOPSLA '03 147 26 18%
OOPSLA '05 174 32 18%
OOPSLA '06 157 26 17%
OOPSLA '07 156 33 21%
OOPSLA '08 117 33 28%
OOPSLA '09 144 25 17%
OOPSLA '10 164 45 27%
OOPSLA '11 166 61 37%
OOPSLA '12 228 59 26%
OOPSLA '13 189 50 26%
OOPSLA '14 186 52 28%
Overall 2,250 524 23%
· Newsletter
Title ACM SIGPLAN Notices - Proceedings of the 2007 OOPSLA conference table of contents archive
Volume 42 Issue 10, October 2007
Pages 515-534
Publication Date2007-10-21 (yyyy-mm-dd)
Sponsor SIGPLAN ACM Special Interest Group on Programming Languages
PublisherACM New York, NY, USA
ISSN: 0362-1340 EISSN: 1558-1160 doi>10.1145/1297105.1297065

APPEARS IN
Performance
Performance
Software
Software

top of pageREVIEWS


Reviews are not available for this item
Computing Reviews logo

top of pageCOMMENTS

Be the first to comment To Post a comment please sign in or create a free Web account

top of pageTable of Contents

Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Table of Contents
SESSION: Growing Java
The jastadd extensible java compiler
Torbjörn Ekman, Görel Hedin
Pages: 1-18
doi>10.1145/1297027.1297029
Full text: PDFPDF

The JastAdd Extensible Java Compiler is a high quality Java compiler that is easy to extend in order to build static analysis tools for Java, and to extend Java with new language constructs. It is built modularly, with a Java 1.4 compiler that is extended ...
expand
Session details: Growing Java
David F. Bacon
doi>10.1145/3250661
Jeannie: granting java native interface developers their wishes
Martin Hirzel, Robert Grimm
Pages: 19-38
doi>10.1145/1297027.1297030
Full text: PDFPDF

Higher-level languages interface with lower-level languages such as C to access platform functionality, reuse legacy libraries, or improve performance. This raises the issue of how to best integrate different languages while also reconciling productivity, ...
expand
Ilea: inter-language analysis across java and c
Gang Tan, Greg Morrisett
Pages: 39-56
doi>10.1145/1297027.1297031
Full text: PDFPDF

Java bug finders perform static analysis to find implementation mistakes that can lead to exploits and failures; Java compilers perform static analysis for optimization.allIf Java programs contain foreign function calls to C libraries, however, static ...
expand
SESSION: Runtime techniques/GC
Session details: Runtime techniques/GC
Cliff Click
doi>10.1145/3250662
Statistically rigorous java performance evaluation
Andy Georges, Dries Buytaert, Lieven Eeckhout
Pages: 57-76
doi>10.1145/1297027.1297033
Full text: PDFPDF

Java performance is far from being trivial to benchmark because it is affected by various factors such as the Java application, its input, the virtual machine, the garbage collector, the heap size, etc. In addition, non-determinism at run-time causes ...
expand
Microphase: an approach to proactively invoking garbage collection for improved performance
Feng Xian, Witawas Srisa-an, Hong Jiang
Pages: 77-96
doi>10.1145/1297027.1297034
Full text: PDFPDF

To date, the most commonly used criterion for invoking garbage collection (GC) is based on heap usage; that is, garbage collection is invoked when the heap or an area inside the heap is full. This approach can suffer from two performance shortcomings: ...
expand
Probabilistic calling context
Michael D. Bond, Kathryn S. McKinley
Pages: 97-112
doi>10.1145/1297027.1297035
Full text: PDFPDF

Calling context enhances program understanding and dynamic analyses by providing a rich representation of program location. Compared to imperative programs, object-oriented programs use more interprocedural and less intraprocedural control flow, ...
expand
SESSION: Inheritance and visibility
Session details: Inheritance and visibility
Yannis Smaragdakis
doi>10.1145/3250663
Variant path types for scalable extensibility
Atsushi Igarashi, Mirko Viroli
Pages: 113-132
doi>10.1145/1297027.1297037
Full text: PDFPDF

Much recent work in the design of object-oriented programming languages has been focusing on identifying suitable features to support so-called scalable extensibility, where the usual extension mechanism by inheritance works in different scales ...
expand
Dependent classes
Vaidas Gasiunas, Mira Mezini, Klaus Ostermann
Pages: 133-152
doi>10.1145/1297027.1297038
Full text: PDFPDF

Virtual classes allow nested classes to be refined in subclasses. In this way nested classes can be seen as dependent abstractions of the objects of the enclosing classes. Expressing dependency via nesting, however, has two limitations: Abstractions ...
expand
Component nextgen: a sound and expressive component framework for java
James Sasitorn, Robert Cartwright
Pages: 153-170
doi>10.1145/1297027.1297039
Full text: PDFPDF

Developing a general component system for a statically typed, object-oriented language is a challenging design problem for two reasons. First, mutually recursive references across components are common in object-oriented programs-an issue that has proven ...
expand
User-changeable visibility: resolving unanticipated name clashes in traits
Stéphane Ducasse, Roel Wuyts, Alexandre Bergel, Oscar Nierstrasz
Pages: 171-190
doi>10.1145/1297027.1297040
Full text: PDFPDF

A trait is a unit of behaviour that can be composed with other traits and used by classes. Traits offer an alternative to multiple inheritance. Conflict resolution of traits, while flexible, does not completely handle accidental method name conflicts: ...
expand
SESSION: Language design
Session details: Language design
William Cook
doi>10.1145/3250664
Transactions with isolation and cooperation
Yannis Smaragdakis, Anthony Kay, Reimer Behrends, Michal Young
Pages: 191-210
doi>10.1145/1297027.1297042
Full text: PDFPDF

We present the TIC (Transactions with Isolation and Cooperation) model for concurrent programming. TIC adds to standard transactional memory the ability for a transaction to observe the effects of other threads at selected points. This allows transactions ...
expand
Streamflex: high-throughput stream programming in java
Jesper H. Spring, Jean Privat, Rachid Guerraoui, Jan Vitek
Pages: 211-228
doi>10.1145/1297027.1297043
Full text: PDFPDF

The stream programming paradigm aims to expose coarse-grained parallelism inapplications that must process continuous sequences of events. The appeal ofstream programming comes from its conceptual simplicity. A program is acollection of independent filters ...
expand
Can programming be liberated from the two-level style: multi-level programming with deepjava
Thomas Kühne, Daniel Schreiber
Pages: 229-244
doi>10.1145/1297027.1297044
Full text: PDFPDF

Since the introduction of object-oriented programming few programming languages have attempted to provide programmers with more than objects and classes, i.e., more than two levels. Those that did, almost exclusively aimed at describing language properties-i.e., ...
expand
SESSION: Software design
Session details: Software design
David Holmes
doi>10.1145/3250665
The causes of bloat, the limits of health
Nick Mitchell, Gary Sevitsky
Pages: 245-260
doi>10.1145/1297027.1297046
Full text: PDFPDF

Applications often have large runtime memory requirements. In some cases, large memory footprint helps accomplish an important functional, performance, or engineering requirement. A large cache,for example, may ameliorate a pernicious performance problem. ...
expand
Notation and representation in collaborative object-oriented design: an observational study
Uri Dekel, James D. Herbsleb
Pages: 261-280
doi>10.1145/1297027.1297047
Full text: PDFPDF

Software designers in the object-oriented paradigm can make use of modeling tools and standard notations such as UML. Nevertheless, casual observations from collocated design collaborations suggest that teams tend to use physical mediums to sketch a ...
expand
Webrb: evaluating a visual domain-specific language for building relational web-applications
Avraham Leff, James T. Rayfield
Pages: 281-300
doi>10.1145/1297027.1297048
Full text: PDFPDF

Many web-applications can be characterized as "relational". In this paper we introduce and evaluate WebRB, a visualdomain-specific language for building such applications. WebRB addresses the limitations of the conventional "imperative-embedding" ...
expand
SESSION: Type and typestate
Session details: Type and typestate
Mandana Vaziri
doi>10.1145/3250666
Modular typestate checking of aliased objects
Kevin Bierhoff, Jonathan Aldrich
Pages: 301-320
doi>10.1145/1297027.1297050
Full text: PDFPDF

Objects often define usage protocols that clients must follow inorder for these objects to work properly. Aliasing makes itnotoriously difficult to check whether clients and implementations are compliant with such protocols. Accordingly, existing approaches ...
expand
Type qualifier inference for java
David Greenfieldboyce, Jeffrey S. Foster
Pages: 321-336
doi>10.1145/1297027.1297051
Full text: PDFPDF

Java's type system provides programmers with strong guarantees of type and memory safety, but there are many important properties not captured by standard Java types. We describe JQual, a tool that adds user-defined type qualifiers to Java, allowing ...
expand
Establishing object invariants with delayed types
Manuel Fahndrich, Songtao Xia
Pages: 337-350
doi>10.1145/1297027.1297052
Full text: PDFPDF

Mainstream object-oriented languages such as C# and Java provide an initialization model for objects that does not guarantee programmer controlled initialization of fields. Instead, all fields are initialized to default values (0 for scalars and null ...
expand
Modular verification of higher-order methods with mandatory calls specified by model programs
Steve M. Shaner, Gary T. Leavens, David A. Naumann
Pages: 351-368
doi>10.1145/1297027.1297053
Full text: PDFPDF

What we call a''higher-order method" (HOM) is a method that makes mandatory calls to other dynamically-dispatched methods. Examples include template methods as in the Template method design pattern and notify methods in the Observer pattern. HOMs are ...
expand
SESSION: Isolation and repair
Session details: Isolation and repair
Steve Backburn
doi>10.1145/3250667
Using early phase termination to eliminate load imbalances at barrier synchronization points
Martin C. Rinard
Pages: 369-386
doi>10.1145/1297027.1297055
Full text: PDFPDF

We present a new technique, early phase termination, for eliminating idle processors in parallel computations that use barrier synchronization. This technique simply terminates each parallel phaseas soon as there are too few remaining tasks to ...
expand
Starc: static analysis for efficient repair of complex data
Bassem Elkarablieh, Sarfraz Khurshid, Duy Vu, Kathryn S. McKinley
Pages: 387-404
doi>10.1145/1297027.1297056
Full text: PDFPDF

Data structure corruptions are insidious bugs that reduce the reliability of software systems. Constraint-based datastructure repair promises to help programs recover from potentially crippling corruption errors. Prior work repairs a variety of relatively ...
expand
Tracking bad apples: reporting the origin of null and undefined value errors
Michael D. Bond, Nicholas Nethercote, Stephen W. Kent, Samuel Z. Guyer, Kathryn S. McKinley
Pages: 405-422
doi>10.1145/1297027.1297057
Full text: PDFPDF

Programs sometimes crash due to unusable values, for example, when Java and C# programs dereference null pointers and when C and C++ programs use undefined values to affect program behavior. A stack trace produced on such a crash identifies the effect ...
expand
SESSION: Ownership
Session details: Ownership
Jan Vitek
doi>10.1145/3250668
Inferring aliasing and encapsulation properties for java
Kin-Keung Ma, Jeffrey S. Foster
Pages: 423-440
doi>10.1145/1297027.1297059
Full text: PDFPDF

There are many proposals for language techniques to control aliasing and encapsulation in object oriented programs, typically based on notions of object ownership and pointer uniqueness. Most of these systems require extensive manual annotations, and ...
expand
Multiple ownership
Nicholas R. Cameron, Sophia Drossopoulou, James Noble, Matthew J. Smith
Pages: 441-460
doi>10.1145/1297027.1297060
Full text: PDFPDF

Existing ownership type systems require objects to have precisely one primary owner, organizing the heap into an ownership tree. Unfortunately, a tree structure is too restrictive for many programs, and prevents many common design patterns where multiple ...
expand
Ownership transfer in universe types
Peter Müller, Arsenii Rudich
Pages: 461-478
doi>10.1145/1297027.1297061
Full text: PDFPDF

Ownership simplifies reasoning about object-oriented programs by controlling aliasing and modifications of objects. Several type systems have been proposed to express and check ownership statically. For ownership systems to be practical, they must allow ...
expand
SESSION: Language specification
Session details: Language specification
Dan Grossman
doi>10.1145/3250669
Lost in translation: formalizing proposed extensions to c#
Gavin M. Bierman, Erik Meijer, Mads Torgersen
Pages: 479-498
doi>10.1145/1297027.1297063
Full text: PDFPDF

Current real-world software applications typically involve heavy use of relational and XML data and their query languages. Unfortunately object-oriented languages and database query languages are based on different semantic foundations and optimization ...
expand
The java module system: core design and semantic definition
Rok Strniša, Peter Sewell, Matthew Parkinson
Pages: 499-514
doi>10.1145/1297027.1297064
Full text: PDFPDF

Java has no module system. Its packages only subdivide the class name space, allowing only a very limited form of component-level information hiding and reuse. Two Java Community Processes have started addressing this problem: one describes the ...
expand
Awesome: an aspect co-weaving system for composing multiple aspect-oriented extensions
Sergei Kojarski, David H. Lorenz
Pages: 515-534
doi>10.1145/1297027.1297065
Full text: PDFPDF

Domain specific aspect-oriented language extensions offer unique capabilities to deal with a variety of cross cutting concerns. Ideally, one should be able to use several of these extensions together in a single program. Unfortunately, each extension ...
expand
SESSION: Runtime techniques
Session details: Runtime techniques
David Gay
doi>10.1145/3250670
Scalable omniscient debugging
Guillaume Pothier, Éric Tanter, José Piquer
Pages: 535-552
doi>10.1145/1297027.1297067
Full text: PDFPDF

Omniscient debuggers make it possible to navigate backwards in time within a program execution trace, drastically improving the task of debugging complex applications. Still, they are mostly ignored in practice due to the challenges raised by the potentially ...
expand
Using hpm-sampling to drive dynamic compilation
Dries Buytaert, Andy Georges, Michael Hind, Matthew Arnold, Lieven Eeckhout, Koen De Bosschere
Pages: 553-568
doi>10.1145/1297027.1297068
Full text: PDFPDF

All high-performance production JVMs employ an adaptive strategy for program execution. Methods are first executed unoptimized and then an online profiling mechanism is used to find a subset of methods that should be optimized during the same execution. ...
expand
Mop: an efficient and generic runtime verification framework
Feng Chen, Grigore Roşu
Pages: 569-588
doi>10.1145/1297027.1297069
Full text: PDFPDF

Monitoring-Oriented Programming (MOP1) [21, 18, 22, 19] is a formal framework for software development and analysis, in which the developer specifies desired properties using definable specification formalisms, along with code to execute when properties ...
expand
Making trace monitors feasible
Pavel Avgustinov, Julian Tibble, Oege de Moor
Pages: 589-608
doi>10.1145/1297027.1297070
Full text: PDFPDF

A trace monitor observes an execution trace at runtime; when it recognises a specified sequence of events, the monitor runs extra code. In the aspect-oriented programming community, the idea originatedas a generalisation of the advice-trigger ...
expand
SESSION: Onward! session 1
Session details: Onward! session 1
Crista Videira Lopes
doi>10.1145/3250671
Full text: PDFPDF
Living in the comfort zone
Martin C. Rinard
Pages: 611-622
doi>10.1145/1297027.1297072
Full text: PDFPDF

A comfort zone is a tested region of a system's input space within which it has been observed to behave acceptably. To keep systems operating within their comfort zones, we advocate the interposition of rectifiers between systems and their input ...
expand
Living it up with a live programming language
Sean McDirmid
Pages: 623-638
doi>10.1145/1297027.1297073
Full text: PDFPDF

A dynamic language promotes ease of use through flexible typing, a focus on high-level programming, and by streamlining the edit-compile-debug cycle. Live languages go beyond dynamic languages with more ease of use features. A live language supports ...
expand
SESSION: Onward! session 2
Session details: Onward! session 2
Crista Videira Lopes
doi>10.1145/3250672
No ifs, ands, or buts: uncovering the simplicity of conditionals
Jonathan Edwards
Pages: 639-658
doi>10.1145/1297027.1297075
Full text: PDFPDF

Schematic tables are a new representation for conditionals. Roughly a cross between decision tables and data flowgraphs, they represent computation and decision-making orthogonally. They unify the full range of conditional constructs, from if ...
expand
Epi-aspects: aspect-oriented conscientious software
Sebastian Fleissner, Elisa L. A. Baniassad
Pages: 659-674
doi>10.1145/1297027.1297076
Full text: PDFPDF

Conscientious software is a recently proposed paradigm for developing reliable, self-sustaining software systems. Conscientious software systems consist of an allopoietic part, which encapsulates application functionality, and an autopoietic part that ...
expand
SESSION: Essays session 1
Session details: Essays session 1
Guy L. Steele, Jr.
doi>10.1145/3250673
Full text: PDFPDF
Confessions of a used programming language salesman
Erik Meijer
Pages: 677-694
doi>10.1145/1297027.1297078
Full text: PDFPDF

For many years I had been fruitlessly trying to sell functional programming and Haskell to solve real world problems such as scripting and data-intensive three-tier distributed web applications. The lack of widespread adoption of Haskell is a real pity. ...
expand
SESSION: Essays session 2
Session details: Essays session 2
Guy L. Steele, Jr.
doi>10.1145/3250674
The transactional memory / garbage collection analogy
Dan Grossman
Pages: 695-706
doi>10.1145/1297027.1297080
Full text: PDFPDF

This essay presents remarkable similarities between transactional memory and garbage collection. The connections are fascinating in their own right, and they let us better understand one technology by thinking about the corresponding issues for the other.
expand

Powered by The ACM Guide to Computing Literature


The ACM Digital Library is published by the Association for Computing Machinery. Copyright © 2019 ACM, Inc.
Terms of Usage   Privacy Policy   Code of Ethics   Contact Us