Runtime Code Modification
There is an ongoing trend for software execution to become more and more dynamic. In modern virtual machines, code is loaded on demand at runtime, compiled just in time to native code, and modified while executing to optimize its performance. Going beyond that, programs can create and execute code on-the-fly to adapt their own behavior to the input data. Even self-modifying code (SMoC) – which had been banned from software development for good reasons – is being considered again; for example, as a technique that allows mobile code to defend itself against changes at an unsecure execution site, or as a strategy for implementing fault-tolerant software systems. The vision is that software should adapt itself automatically to a changing, insecure, or faulty execution environment, including itself.
The goal of the seminar is to explore the range of software techniques that are available for modifying and synthesizing code at runtime. Topics covered in the seminar include:
- adaptive optimization of intermediate code;
- dynamic creation of classes;
- binary transformation of code at runtime;
- extensible programming languages;
- self-modifying code;
- semantics of self-modifying code.
Course requirements include: compiling a research bibliography; giving a preliminary outline talk (15 mins); and giving a full technical presentation (60 mins). The outline talks are scheduled for early in the semester; hence, the bibliography must be completed during the summer break. The final presentations are scheduled for the second half of the semester. To balance the work load of the expanded presentation, writing a term paper ("Ausarbeitung") is not required.
The number of slots in the seminar is limited to 10.
The preliminary meeting ("Vorbesprechung") will take place in September
(details to be announced).
If you want to register for the seminar, please send an email to:
Please include your name, student id ("Matrikelnummer"), and semester of study.
Dr. Frank Padberg, July 22, 2009