next up previous
Next: Conclusion and perspectives Up: Research directions Previous: Problem 3: Modifications to

   
Problem 4: Tackling dynamic behavioral reflection

Dynamic behavioral reflection happens when modifications depends directly or indirectly upon unknown inputs to the program. It doesn't mean however that no compilation can occur. Dynamic compilation techniques are already used in several languages, such as Smalltalk and Self. The problem, as stated earlier, is that the compilers will have to be generated dynamically, currently a major drawback. This fact leads to the following observation. In the same way standard languages face a compromise between the cost of compiling versus interpreting, which depends on the number of times a portion of code is executed, languages with dynamic behavioral reflection face a compromise between compiling versus interpreting a portion of code that depends on the number of times it is executed between successive reflective modifications that renders its recompilation mandatory.

In this perspective, we can foresee systems that mix interpretation and compilation, where it would be possible to compile part of the application and suspend the compilation when the necessary information will be known only at run-time. Suspended compilation will then be incrementally performed during run-time, perhaps depending on heuristics balancing the expected gain in performance versus the expected cost of performing this compilation.

Obviously, there is a compromise between the added flexibility that is provided by dynamic behavioral reflection, and performance. If it currently appears as pure fantasy for most applications, some of them may already prefer this kind of flexibility. For example, applications running for weeks on networks of heterogeneous computers may put a higher preference on the possibility to generate a new compiler to migrate processes towards newly added nodes than pure performance. Also, as incremental compiler generation will enhance, the balance between flexibility and performance will militate in favor of more practical applications.


next up previous
Next: Conclusion and perspectives Up: Research directions Previous: Problem 3: Modifications to
Matt Hurlbut
1998-07-02