Title
Runtime bytecode transformation for Smalltalk
Abstract
Transforming programs to alter their semantics is of wide interest, for purposes as diverse as off-the-shelf component adaptation, optimization, trace generation, and experimentation with new language features. The current wave of interest in advanced technologies for better separation of concerns, such as aspect-oriented programming, is a solid testimony of this fact. Strangely enough, almost all proposals are formulated in the context of Java, in which tool providers encounter severe restrictions due to the rigidity of the environment. This paper presents BYTESURGEON, a library to transform binary code in Smalltalk. BYTESURGEON takes full advantage of the flexibility of the Squeak environment to enable bytecode transformation at runtime, thereby allowing dynamic, on-the-fly modification of applications. BYTESURGEON operates on bytecode in order to cope with situations where the source code is not available, while providing appropriate high-level abstractions so that users do not need to program at the bytecode level. We illustrate the use of BYTESURGEON via the implementation of method wrappers and a simple MOP, and report on its efficiency.
Year
DOI
Venue
2006
10.1016/j.cl.2005.10.002
Computer Languages, Systems & Structures
Keywords
Field
DocType
binary code,appropriate high-level abstraction,bytecode level,object-oriented programming,bytecode transformation,aspect-oriented programming,smalltalk,wide interest,metaprogramming,runtime bytecode transformation,transforming program,source code,advanced technology,squeak environment,separation of concern,adaptive optimization,object oriented programming
Metaprogramming,Programming language,Object-oriented programming,Source code,Computer science,Smalltalk,Separation of concerns,Squeak,Bytecode,Programming language implementation
Journal
Volume
Issue
ISSN
32
2-3
Computer Languages, Systems & Structures
Citations 
PageRank 
References 
16
0.86
24
Authors
3
Name
Order
Citations
PageRank
Marcus Denker128523.94
Stéphane Ducasse23418243.15
íric Tanter3341.88