Abstract

In a recent work we have proposed a compilation strategy (that is, a way to decide which unchanged sources have to be recompiled) for a substantial subset of Java which has been shown to be sound and minimal. That is, an unchanged source is recompiled if and only if its recompilation produces a different binary or an error. However, that model does not handle two features of Java, namely, compile-time constant fields (static final fields initialized by a compile-time constant of a primitive type or String) and unreachable code, which turn out to be troublesome for having a sound and minimal compilation strategy. To our best knowledge these two features, probably because of their low-level nature, have been omitted in all models of Java separate compilation written so far. Yet, a compilation strategy for full Java has to deal with them. Thus, in this paper we analyze the implications of handling compile-time constant fields and unreachable code, and extend our previous model in order to handle these two features as well.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.