Towards a Smart Compilation Manager for Java [chapter]

Giovanni Lagorio
2003 Lecture Notes in Computer Science  
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
more » ... 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.
doi:10.1007/978-3-540-45208-9_24 fatcat:4xepgoieffeepn56taj2qyvlhi