A formal reference for SCOOP

  • Authors:
  • Benjamin Morandi;Sebastian Nanz;Bertrand Meyer

  • Affiliations:
  • Software Engineering, ETH Zurich, Switzerland;Software Engineering, ETH Zurich, Switzerland;Software Engineering, ETH Zurich, Switzerland

  • Venue:
  • Empirical Software Engineering and Verification
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Operational semantics is a flexible but rigorous means to describe the meaning of programming languages. Small semantics are often preferred, for example to facilitate model checking. However, omitting too many details in a semantics limits results to a core language only, leaving a wide gap towards real implementations. In this paper we present a comprehensive semantics of the concurrent programming model SCOOP (Simple Concurrent Object-Oriented Programming). The semantics has been found detailed enough to guide an implementation of the SCOOP compiler and runtime system, and to detect and correct a variety of errors and ambiguities in the original informal specification and prototype implementation. In our formal specification, we use abstract data types with preconditions and axioms to describe the state, and introduce a number of special operations to model the runtime system with our inference rules. This approach makes our large formal specification manageable, providing a first step towards reference documents for specifying concurrent object-oriented languages based on operational semantics.