In this thesis, we examine the feasibility and benefits of a continuous compilation system by examining the extent to which program interpretation and compilation can be overlapped and intermixed in a system that continuously translates programs into native-code form throughout program execution. We will present experimental data that indicates a significant performance gain by the continuous compilation model over more traditional approaches. During this time interval, the user has essentially abdicated control of the development cycle to the computer. In particular, shortening this interval improves life for the program developer, because the effects of a program edit can be seen more quickly. For example, if recovery time takes a minute or more, then there is a good possibility that the program developer has switched to a different task, such as reading mail or solving other problems.
Program optimizations can significantly increase compilation times.
This trend is likely to become worse as interprocedural information is incorporated into program optimization. Consider the scenario depicted in Figure 1.2 . Program execution begins with interpretation, with compilation proceeding concurrently with execution. As execution continues, the interpreted source code is gradually replaced with natively-executable code. Performance increases until, eventually, the entire program has been translated to a fully native form.