We propose a calculus describing compilation and link-ing in terms of operations on fragments, i.e. compilation units, without reference to their specific contents. We be-lieve this calculus faithfully reflects the situation within modern programming systems. Binary compatibility in Java prescribes conditions un-der which modification of fragments does not necessitate re-compilation of importing fragments. We apply our calculus to formalize binary compatibility, and demonstrate that sev-eral interpretations of the language specification are possi-ble, each with different ramifications. We choose a partic-ular interpretation, justify our choice, formulate and prove properties important for language designers and code li-brary developers. 1
Abstract. The paper adds a mechanism of closure to Java. We apply to closures the same technique we...
A goal of software product lines is the economical synthesis of programs in a family of programs. In...
We present an operational semantics, type system, and a proof of type soundness for a substantial su...
We propose a calculus describing compilation and linking in terms of operations on fragments, i.e. c...
Separate compilation allows the decomposition of programs into units that may be compiled separately...
Java binary compatibility prescribes conditions under which modification and re-compilation of class...
The Java language description is unusual in that it defines the effect of interleaving separate comp...
We define compositional compilation as the ability to typecheck source code fragments in isolation, ...
We formally define and implement a formal system supporting separate compilation for a small but si...
Real-world programs are neither monolithic nor static – they are con-structed using platform and thi...
technical reportIn this paper we show how modular linking of program fragments can be added to stati...
In standard compilation of Java-like languages, the bytecode generated for a given source depends on...
Abstract. We present a module calculus for studying a simple model of link-time compilation. The cal...
\Lname\ is a minimal core calculus that extends Featherweight (generic) Java, \FGJ, with lambda expr...
Abstract. In this paper we present the unconventional architecture of JOSH, an interpreter for Java ...
Abstract. The paper adds a mechanism of closure to Java. We apply to closures the same technique we...
A goal of software product lines is the economical synthesis of programs in a family of programs. In...
We present an operational semantics, type system, and a proof of type soundness for a substantial su...
We propose a calculus describing compilation and linking in terms of operations on fragments, i.e. c...
Separate compilation allows the decomposition of programs into units that may be compiled separately...
Java binary compatibility prescribes conditions under which modification and re-compilation of class...
The Java language description is unusual in that it defines the effect of interleaving separate comp...
We define compositional compilation as the ability to typecheck source code fragments in isolation, ...
We formally define and implement a formal system supporting separate compilation for a small but si...
Real-world programs are neither monolithic nor static – they are con-structed using platform and thi...
technical reportIn this paper we show how modular linking of program fragments can be added to stati...
In standard compilation of Java-like languages, the bytecode generated for a given source depends on...
Abstract. We present a module calculus for studying a simple model of link-time compilation. The cal...
\Lname\ is a minimal core calculus that extends Featherweight (generic) Java, \FGJ, with lambda expr...
Abstract. In this paper we present the unconventional architecture of JOSH, an interpreter for Java ...
Abstract. The paper adds a mechanism of closure to Java. We apply to closures the same technique we...
A goal of software product lines is the economical synthesis of programs in a family of programs. In...
We present an operational semantics, type system, and a proof of type soundness for a substantial su...