Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java 2010
DOI: 10.1145/1852761.1852764
|View full text |Cite
|
Sign up to set email alerts
|

Dynamic code evolution for Java

Abstract: Dynamic code evolution is a technique to update a program while it is running. In an object-oriented language such as Java, this can be seen as replacing a set of classes by new versions. We modified an existing high-performance virtual machine to allow arbitrary changes to the definition of loaded classes. Besides adding and deleting fields and methods, we also allow any kind of changes to the class and interface hierarchy. Our approach focuses on increasing developer productivity during debugging. Changes ca… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
40
0
1

Year Published

2011
2011
2018
2018

Publication Types

Select...
4
2
2

Relationship

0
8

Authors

Journals

citations
Cited by 57 publications
(41 citation statements)
references
References 31 publications
0
40
0
1
Order By: Relevance
“…A causally connected dynamic meta-level for debugging that can support run-time evolution can be build for Java by combining the currently available debugging infrastructure found in JPDA [Ora13b] with the incremental updating facilities of the DCE VM project [WWS10] or those found in the JRebel vm-plugin [Zer12] (see also Section 4). Support for semantic instrumentation can be build on top of solutions for bytecode manipulation or reflective intercession for Java like those in Iguana/J [RC00], Reflex [TBN01], ASM [BLC02] or JavaAssist [CN03].…”
Section: Discussion: Implementing Mercury In Javamentioning
confidence: 99%
See 1 more Smart Citation
“…A causally connected dynamic meta-level for debugging that can support run-time evolution can be build for Java by combining the currently available debugging infrastructure found in JPDA [Ora13b] with the incremental updating facilities of the DCE VM project [WWS10] or those found in the JRebel vm-plugin [Zer12] (see also Section 4). Support for semantic instrumentation can be build on top of solutions for bytecode manipulation or reflective intercession for Java like those in Iguana/J [RC00], Reflex [TBN01], ASM [BLC02] or JavaAssist [CN03].…”
Section: Discussion: Implementing Mercury In Javamentioning
confidence: 99%
“…JRebel and DCE The DCE VM [WWS10] and Jrebel [Zer12] are both modifications for the Java virtual machine that support redefinition of loaded classes at runtime. Although these modifications of the underlying VM are not a solution for debugging themselves, they do provide incremental updating facilities for remote targets.…”
Section: Existing Solutionsmentioning
confidence: 99%
“…-how to modify the code during its execution (several tools, -as JavAdaptor [61,62], Javeleon [38] and jRebel [41]-and some JVM extensions -as Java hotspot and the Wurthinger et al's work [69]-help with this issue); -how to associate the design information to the running code (normally models and code are statically coupled and the generation of the new code is model-driven); -how to face the natural gap between code and design information especially in case of evolution [19,68].…”
Section: Self-adjusting: Reflecting On the Modelmentioning
confidence: 99%
“…For example, some updates will be rejected if they are not provably type-safe [20] or might produce run-time errors [33].…”
Section: Other Approachesmentioning
confidence: 99%