Formal analysis of a distributed object-oriented language and runtime
File(s)DTR05-1.pdf (425.83 KB)
Published version
Author(s)
Ahern, Alexander
Yoshida, Nobuko
Type
Report
Abstract
Distributed language features form an important part of modern objectoriented
programming. In spite of their prominence in today’s computing environments,
the formal semantics of distributed primitives for object-oriented languages
have not been well-understood, in contrast to their sequential part. This
makes it difficult to perform rigorous analysis of their behaviour and develop
formally founded safety methodologies. As a first step to rectify this situation,
we present an operational semantics and typing system for a Java-like core language
with primitives for distribution. The language captures the crucial but often
hidden concerns involved in distributed objects, including object serialisation,
dynamic class downloading and remote method invocation. We propose several
invariant properties that describe important correctness conditions for distributed
runtime behaviour. These invariants also play a fundamental rˆole in establishing
type safety, and help bound the design space for extensions to the language. The
semantics of the language are constructed modularly, allowing straightforward
extension, and this is exploited by adding primitives for direct code distribution
to the language: thunk passing. Typing rules for the new primitives are developed
using the invariants as an analysis tool, with type soundness ensuring that their
inclusion does not violate safety guarantees.
programming. In spite of their prominence in today’s computing environments,
the formal semantics of distributed primitives for object-oriented languages
have not been well-understood, in contrast to their sequential part. This
makes it difficult to perform rigorous analysis of their behaviour and develop
formally founded safety methodologies. As a first step to rectify this situation,
we present an operational semantics and typing system for a Java-like core language
with primitives for distribution. The language captures the crucial but often
hidden concerns involved in distributed objects, including object serialisation,
dynamic class downloading and remote method invocation. We propose several
invariant properties that describe important correctness conditions for distributed
runtime behaviour. These invariants also play a fundamental rˆole in establishing
type safety, and help bound the design space for extensions to the language. The
semantics of the language are constructed modularly, allowing straightforward
extension, and this is exploited by adding primitives for direct code distribution
to the language: thunk passing. Typing rules for the new primitives are developed
using the invariants as an analysis tool, with type soundness ensuring that their
inclusion does not violate safety guarantees.
Date Issued
2005-01-01
Citation
Departmental Technical Report: 05/1, 2005, pp.1-88
Publisher
Department of Computing, Imperial College London
Start Page
1
End Page
88
Journal / Book Title
Departmental Technical Report: 05/1
Copyright Statement
© 2005 The Author(s). This report is available open access under a CC-BY-NC-ND (https://creativecommons.org/licenses/by-nc-nd/4.0/)
Publication Status
Published
Article Number
05/1