Proceedings Article10.1145/508386.508396
Runtime aspect weaving through metaprogramming
Jason Baker,Wilson C. Hsieh +1 more
- 22 Apr 2002
- pp 86-95
TL;DR: An extension to the Java language, Handi-Wrap, that supports weaving aspects into code at runtime, in the form of method wrappers, which allow aspect code to be inserted around method bodies like advice in AspectJ.
read more
Abstract: We describe an extension to the Java language, Handi-Wrap, that supports weaving aspects into code at runtime. Aspects in Handi-Wrap take the form of method wrappers, which allow aspect code to be inserted around method bodies like advice in AspectJ. Handi-Wrap offers several advantages over static aspect languages such as AspectJ. First, aspects can be woven into binary libraries. Second, a wrapper in Handi-Wrap is a first-class Java value, which allows users to exploit Java mechanisms to define and weave wrappers. For example, wrappers can be passed explicit constructor arguments, and wrapper objects can be composed. Finally, methods in all Java classes, including anonymous classes, can be wrapped. A prototype of Handi-Wrap is implemented in a compile-time metaprogramming system for Java, called Maya; we briefly describe how Maya's features support Handi-Wrap.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Just-in-time aspects: efficient dynamic weaving for Java
Andrei Popovici,Gustavo Alonso,Thomas R. Gross +2 more
- 17 Mar 2003
TL;DR: This paper provides basic support for weaving using the Just-In-Time compiler, while the AOP system is treated as an exchangeable module on top of the basic support, which allows for low run-time overhead, Aop system flexibility, and secure weaving.
209
Association aspects
Kouhei Sakurai,Hidehiko Masuhara,Naoyasu Ubayashi,Saeko Matsuura,Seiichi Komiya +4 more
- 22 Mar 2004
TL;DR: A linguistic mechanism for AspectJ-like languages that concisely associates aspect instances to object groups is proposed, which supports association aspects and provides a new pointcut primitive to specify aspect instances as execution contexts of advice.
89
Maya: multiple-dispatch syntax extension in Java
Jason Baker,Wilson C. Hsieh +1 more
- 17 May 2002
TL;DR: The design and implementation of Maya are described, a version of Java that allows programmers to extend and reinterpret its syntax, and how its novel parsing techniques work and how Maya can statically detect certain kinds of errors are described.
Finding application errors and security flaws using PQL
TL;DR: A number of effective error detection tools have been built in recent years to check if a program conforms to certain design rules.
79
TRAP/J: Transparent Generation of Adaptable Java Programs
S. Masoud Sadjadi,Philip K. McKinley,Betty H. C. Cheng,R. E. Kurt Stirewalt +3 more
- 25 Oct 2004
TL;DR: A case study is presented in which TRAP/J is used to introduce adaptive behavior to an existing audio-streaming application, enabling it to operate effectively in a lossy wireless network by detecting and responding to changing network conditions.
References
•Book
Generative Programming: Methods, Tools, and Applications
Krzysztof Czarnecki,Ulrich W. Eisenecker +1 more
- 16 Jun 2000
TL;DR: This chapter discusses Domain Engineering and Object-Oriented Analysis and Design, and main development steps in Generative Programming, as well as Static versus Dynamic Parameterization, and a Fresh Look at Polymorphism.
2.9K
MultiJava: modular open classes and symmetric multiple dispatch for Java
Curtis Clifton,Gary T. Leavens,Craig Chambers,Todd Millstein +3 more
- 01 Oct 2000
TL;DR: MultiJava is presented, a backward-compatible extension to Java supporting open classes and symmetric multiple dispatch, and adapt previous theoretical work to allow compilation units to be statically typechecked modularly and safely, ruling out any link-time or run-time type errors.
JAC: A Flexible Solution for Aspect-Oriented Programming in Java
TL;DR: This paper presents JAC (Java Aspect Components), a framework for aspect-oriented programming in Java that uses the Javassist class load-time MOP and does not require any language extensions to Java.
244
JTS: tools for implementing domain-specific languages
Don Batory,B. Lofaso,Yannis Smaragdakis +2 more
- 02 Jun 1998
TL;DR: The Jakarta Tool Suite (JTS) aims to reduce substantially the cost of generator development by providing domain-independent tools for creating domain-specific languages and component-based generators called GenVoca generators.