Publication | Closed Access
Controlled, systematic, and efficient code replacement for running java programs
62
Citations
51
References
2008
Year
Unknown Venue
Software MaintenanceEngineeringAdditional Programming LanguageCompiler TechnologyComputer ArchitectureSoftware EngineeringSoftware AnalysisFormal VerificationJava ProgramsPresent ProseProgram TransformationDynamic CompilationComputer EngineeringComputer ScienceReal-time JavaStatic Program AnalysisSoftware DesignCode RefactoringProgram AnalysisSoftware TestingFormal MethodsJava ApplicationsSystem Software
In this paper we present PROSE, a system that performs reversible and systematic changes to running Java applications without requiring them to be shut down. PROSE is motivated by scenarios such as hotfixes, online program instrumentation and debugging, and evolution of critical legacy applications. In PROSE, changes to running applications are performed by replacing method bodies. To select which code to replace, PROSE supports matching based on both type information and regular expressions. New code can invoke the method it replaces, facilitating code evolution. Changes are composable, and may be reordered or selectively withdrawn at any time. Furthermore, the dynamic changes are expressed as Java classes rather than through an additional programming language. We describe the architecture of PROSE, the challenges of using aggressive inlining to achieve performance, and use standard benchmarks to demonstrate code performance comparable with, or better than, compile-time systems from the Aspect-Oriented Programming community.
| Year | Citations | |
|---|---|---|
Page 1
Page 1