The Java language description is unusual in that it defines the effect of interleaving separate compilation and source code modifications. In Java, certain source code modifications, such as adding a method to a class, are defined as binary compatible. The Java language description does not require the re-compilation of programs importing classes or interfaces which were modified in binary compatible ways, and it claims that successful linking and execution of the altered program is guaranteed. In this paper we show that Java binary compatibility does not actually guarantee successful linking and execution. We then suggest a framework in which we formalize the requirement of safe linking and execution without re-compilation and we propose a...
Amidst rocketing numbers of enthusiastic Java programmers and internet applet users, there is growin...
Two features distinguish Java from other main-stream programming languages like C and C++: its built...
AbstractThis article presents a formalisation of the bytecode optimisation of Sun's Java Card langua...
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...
Real-world programs are neither monolithic nor static – they are con-structed using platform and thi...
We propose a calculus describing compilation and linking in terms of operations on fragments, i.e. c...
We propose a calculus describing compilation and link-ing in terms of operations on fragments, i.e. ...
There is an ongoing debate in the Java community on whether statically compiled implementations can ...
We present an operational semantics, type system, and a proof of type soundness for a substantial su...
Modern software systems are not built from scratch. They use functionality provided by libraries. Th...
Backward compatibility of class libraries ensures that an old implementation of a library can safely...
We propose a framework for establishing the correctness of untrusted Java bytecode components w.r.t....
The Java programming language provides safety and security guarantees such as type safety and its se...
In standard compilation of Java-like languages, the bytecode generated for a given source depends on...
Amidst rocketing numbers of enthusiastic Java programmers and internet applet users, there is growin...
Two features distinguish Java from other main-stream programming languages like C and C++: its built...
AbstractThis article presents a formalisation of the bytecode optimisation of Sun's Java Card langua...
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...
Real-world programs are neither monolithic nor static – they are con-structed using platform and thi...
We propose a calculus describing compilation and linking in terms of operations on fragments, i.e. c...
We propose a calculus describing compilation and link-ing in terms of operations on fragments, i.e. ...
There is an ongoing debate in the Java community on whether statically compiled implementations can ...
We present an operational semantics, type system, and a proof of type soundness for a substantial su...
Modern software systems are not built from scratch. They use functionality provided by libraries. Th...
Backward compatibility of class libraries ensures that an old implementation of a library can safely...
We propose a framework for establishing the correctness of untrusted Java bytecode components w.r.t....
The Java programming language provides safety and security guarantees such as type safety and its se...
In standard compilation of Java-like languages, the bytecode generated for a given source depends on...
Amidst rocketing numbers of enthusiastic Java programmers and internet applet users, there is growin...
Two features distinguish Java from other main-stream programming languages like C and C++: its built...
AbstractThis article presents a formalisation of the bytecode optimisation of Sun's Java Card langua...