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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ábrahám, E., de Boer, F.S., de Roever, W.-P., Steffen, M.: A compositional operational semantics for JavaMT. In: Dershowitz, N. (ed.) Verification: Theory and Practice. LNCS, vol. 2772, pp. 290–303. Springer, Heidelberg (2004)
Allen, E., Chase, D., Luchangco, V., Maessen, J.W., Steele Jr., G.L.: Object-oriented units of measurement. In: Conference on Object Oriented Programming Systems Languages and Applications, pp. 384–403 (2004)
Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems 26(5), 269–804 (2004)
Blumofe, R.D., Joerg, C.F., Kuszmaul, B.C., Leiserson, C.E., Randall, K.H., Zhou, Y.: Cilk: An efficient multithreaded runtime system. ACM SIGPLAN Notices 30(8), 207–216 (1995)
Brooke, P.J., Paige, R.F., Jacob, J.L.: A CSP model of Eiffel’s SCOOP. Formal Aspects of Computing 19(4), 487–512 (2007)
Cenciarelli, P., Knapp, A., Reus, B., Wirsing, M.: An Event-Based Structural Operational Semantics of Multi-threaded Java. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 157–200. Springer, Heidelberg (1999)
Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: An object-oriented approach to non-uniform cluster computing. In: Conference on Object Oriented Programming Systems Languages and Applications, pp. 519–538 (2005)
Coffman, E.G., Elphick, M.J., Shoshani, A.: System deadlocks. ACM Computing Surveys 3(2), 67–78 (1971)
ECMA: ECMA-367 Eiffel: Analysis, design and programming language 2nd edn. Tech. rep., ECMA International (2006)
Ericsson Erlang website (2011), http://www.erlang.org/
Fournet, C., Gonthier, G.: The reflexive CHAM and the join-calculus. In: ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 372–385 (1996)
Gelernter, D., Carriero, N., Chandran, S., Chang, S.: Parallel programming in Linda. In: International Conference on Parallel Processing, pp. 255–263 (1985)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall (1985)
International Organization for Standardization: ISO/IEC 8652:1995 Ada. Tech. rep., International Organization for Standardization (1995)
Joyner, M., Chamberlain, B.L., Deitz, S.J.: Iterators in Chapel. In: International Parallel and Distributed Processing Symposium/International Parallel Processing Symposium (2006)
Khoshafian, S., Copeland, G.P.: Object identity. In: Conference on Object Oriented Programming Systems Languages and Applications. pp. 406–416 (1986)
Klein, G., Nipkow, T.: A machine-checked model for a Java-like language, virtual machine and compiler. ACM Transactions on Programming Languages and Systems 28(4), 619–695 (2006)
Liskov, B., Zilles, S.: Programming with abstract data types. ACM SIGPLAN Notices 9(4), 50–59 (1974)
Lochbihler, A.: Type safe nondeterminism – A formal semantics of Java threads. In: International Workshop on Foundations of Object-Oriented Languages (2008)
Meyer, B.: A three-level approach to data structure description, and notational framework. In: ACM-NBS Workshop on Data Abstraction, Databases and Conceptual Modelling, pp. 164–166 (1981)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall (1997)
Microsoft Axum website (2011), http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx/
Milner, R.: Communicating and mobile systems: the π-calculus. Cambridge University Press (1999)
Morandi, B., Nanz, S., Meyer, B.: A comprehensive operational semantics of the SCOOP programming model (2011), http://arxiv.org/abs/1101.1038v1
Nienaltowski, P.: Practical framework for contract-based concurrent object-oriented programming. Ph.D. thesis, ETH Zurich (2007)
Nordio, M., Calcagno, C., Müller, P., Meyer, B.: A Sound and Complete Program Logic for Eiffel. In: Oriol, M., Meyer, B. (eds.) TOOLS EUROPE 2009. LNBIP, vol. 33, pp. 195–214. Springer, Heidelberg (2009)
Odersky, M.: The Scala language specification version 2.8. Tech. rep., Swiss Federal Institute of Technology Lausanne (2010)
Ostroff, J.S., Torshizi, F.A., Huang, H.F., Schoeller, B.: Beyond contracts for concurrency. Formal Aspects of Computing 21(4), 319–346 (2008)
Plotkin, G.D.: A structural approach to operational semantics. The Journal of Logic and Algebraic Programming 60–61, 17–139 (2004)
Schmidt, H.W., Chen, J.: Reasoning about concurrent objects. In: Asia-Pacific Software Engineering Conference, p. 86 (1995)
SCOOP website (2011), http://scoop.origo.ethz.ch/
SGS-THOMSON Microelectronics Limited: occam 2.1 reference manual. Tech. rep., SGS-THOMSON Microelectronics Limited (1995)
Torshizi, F., Ostroff, J.S., Paige, R.F., Chechik, M.: The SCOOP concurrency model in Java-like languages. In: Communicating Process Architectures, pp. 155–178. IOS (2009)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Morandi, B., Nanz, S., Meyer, B. (2012). A Formal Reference for SCOOP. In: Meyer, B., Nordio, M. (eds) Empirical Software Engineering and Verification. LASER LASER LASER 2010 2009 2008. Lecture Notes in Computer Science, vol 7007. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25231-0_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-25231-0_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-25230-3
Online ISBN: 978-3-642-25231-0
eBook Packages: Computer ScienceComputer Science (R0)