Towards a Smart Compilation Manager for Java
It is often infeasible to recompile all the sources an application consists of each time a change is made. Yet, a recompilation strategy which does not guarantee the same outcome of an entire recompilation is not useful: why wasting time in debugging a program (a set of .class files in the Java case) which might behave differently from the program obtained recompiling all the sources from scratch?
We say that a compilation strategy is sound if it recompiles, besides the changed sources, all the unchanged sources whose new binary, produced by the overall recompilation, would differ from the existing one (if any) and all the sources for which the recompilation would be undefined: indeed, when the entire compilation fails, so should do the partial recompilation.
We say that a compilation strategy is minimal if it never recompiles an unchanged source whose new binary would be equal to the existing one. In this paper we present a compilation strategy for a substantial subset of Java which is proved to be sound and minimal.
KeywordsType Environment Proof Tree Method Invocation Type Assumption Compilation Strategy
Unable to display preview. Download preview PDF.
- 2.Ancona, D., Lagorio, G.: Stronger Typings for Separate Compilation of Java-like Languages. Technical report, DISI (March 2003)Google Scholar
- 7.Drossopoulou, S., Valkevych, T., Eisenbach, S.: Java type soundness revisited. Technical report, Dept. of Computing - Imperial College of Science, Technology and Medicine (September 2000)Google Scholar
- 8.Gosling, J., Joy, B., Steele, G., Bracha, G.: The JavaTM Language Specification, 2nd edn. Addison-Wesley, Reading (2000)Google Scholar
- 9.SUN Microsystems. The Java HotSpot Virtual Machine (2001) (technical white paper)Google Scholar