Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
ACM Computing Surveys (CSUR)
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
The Java syntactic extender (JSE)
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Advances in Object-Oriented Metalevel Architectures and Reflection
Advances in Object-Oriented Metalevel Architectures and Reflection
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Load-Time Structural Reflection in Java
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Supporting Unanticipated Dynamic Adaptation of Application Behaviour
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Reflex - Towards an Open Reflective Extension of Java
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Kava - A Reflective Java Based on Bytecode Rewriting
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Meta-Level Architecture Support for distributed Objects
IWOOOS '95 Proceedings of the 4th International Workshop on Object-Orientation in Operating Systems
BIT: a tool for instrumenting java bytecodes
USITS'97 Proceedings of the USENIX Symposium on Internet Technologies and Systems on USENIX Symposium on Internet Technologies and Systems
Automatic program transformation with JOIE
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Web cache prefetching as an aspect: towards a dynamic-weaving based solution
Proceedings of the 2nd international conference on Aspect-oriented software development
Partial behavioral reflection: spatial and temporal selection of reification
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
An easy-to-use toolkit for efficient Java bytecode translators
Proceedings of the 2nd international conference on Generative programming and component engineering
[a]C#: C# with a customizable code annotation mechanism
Proceedings of the 2005 ACM symposium on Applied computing
Portable and accurate sampling profiling for Java
Software—Practice & Experience - Research Articles
Flexible and efficient measurement of dynamic bytecode metrics
Proceedings of the 5th international conference on Generative programming and component engineering
Advanced Java bytecode instrumentation
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Program transformations for light-weight CPU accounting and control in the Java virtual machine
Higher-Order and Symbolic Computation
Aspect weaving in standard Java class libraries
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Zero-a blend of static typing and dynamic metaprogramming
Computer Languages, Systems and Structures
HotWave: creating adaptive tools with dynamic aspect-oriented programming in Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Runtime bytecode transformation for Smalltalk
Computer Languages, Systems and Structures
Flexible Bytecode for Linking in .NET
Electronic Notes in Theoretical Computer Science (ENTCS)
Using Bytecode Instruction Counting as Portable CPU Consumption Metric
Electronic Notes in Theoretical Computer Science (ENTCS)
Comprehensive aspect weaving for Java
Science of Computer Programming
Hi-index | 0.00 |
Altering the semantics of programs has become of major interest. This is due to the necessity of adapting existing software, for instance to achieve interoperability between off-the-shelf components. A system allowing such alterations should operate at the bytecode level in order to preserve portability and to be useful for pieces of software whose source code is not available. Furthermore, working at the bytecode level should be done while keeping high-level abstractions so that it can be useful to a wide audience. In this paper, we present Jinline, a tool that operates at load time through bytecode manipulation. Jinline makes it possible to inline a method body before, after, or instead of occurrences of language mechanisms within a method. It provides appropriate high-level abstractions for fine-grained alterations while offering a good expressive power and a great ease of use.