Skip to main content

A Formal Reference for SCOOP

  • Chapter
Empirical Software Engineering and Verification (LASER 2010, LASER 2009, LASER 2008)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Á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)

    Chapter  Google Scholar 

  2. 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)

    Google Scholar 

  3. Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems 26(5), 269–804 (2004)

    Article  MATH  Google Scholar 

  4. 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)

    Article  Google Scholar 

  5. 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)

    Article  MATH  Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. 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)

    Google Scholar 

  8. Coffman, E.G., Elphick, M.J., Shoshani, A.: System deadlocks. ACM Computing Surveys 3(2), 67–78 (1971)

    Article  MATH  Google Scholar 

  9. ECMA: ECMA-367 Eiffel: Analysis, design and programming language 2nd edn. Tech. rep., ECMA International (2006)

    Google Scholar 

  10. Ericsson Erlang website (2011), http://www.erlang.org/

  11. 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)

    Google Scholar 

  12. Gelernter, D., Carriero, N., Chandran, S., Chang, S.: Parallel programming in Linda. In: International Conference on Parallel Processing, pp. 255–263 (1985)

    Google Scholar 

  13. Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall (1985)

    Google Scholar 

  14. International Organization for Standardization: ISO/IEC 8652:1995 Ada. Tech. rep., International Organization for Standardization (1995)

    Google Scholar 

  15. Joyner, M., Chamberlain, B.L., Deitz, S.J.: Iterators in Chapel. In: International Parallel and Distributed Processing Symposium/International Parallel Processing Symposium (2006)

    Google Scholar 

  16. Khoshafian, S., Copeland, G.P.: Object identity. In: Conference on Object Oriented Programming Systems Languages and Applications. pp. 406–416 (1986)

    Google Scholar 

  17. 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)

    Article  Google Scholar 

  18. Liskov, B., Zilles, S.: Programming with abstract data types. ACM SIGPLAN Notices 9(4), 50–59 (1974)

    Article  Google Scholar 

  19. Lochbihler, A.: Type safe nondeterminism – A formal semantics of Java threads. In: International Workshop on Foundations of Object-Oriented Languages (2008)

    Google Scholar 

  20. 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)

    Google Scholar 

  21. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall (1997)

    Google Scholar 

  22. Microsoft Axum website (2011), http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx/

  23. Milner, R.: Communicating and mobile systems: the π-calculus. Cambridge University Press (1999)

    Google Scholar 

  24. Morandi, B., Nanz, S., Meyer, B.: A comprehensive operational semantics of the SCOOP programming model (2011), http://arxiv.org/abs/1101.1038v1

  25. Nienaltowski, P.: Practical framework for contract-based concurrent object-oriented programming. Ph.D. thesis, ETH Zurich (2007)

    Google Scholar 

  26. 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)

    Chapter  Google Scholar 

  27. Odersky, M.: The Scala language specification version 2.8. Tech. rep., Swiss Federal Institute of Technology Lausanne (2010)

    Google Scholar 

  28. Ostroff, J.S., Torshizi, F.A., Huang, H.F., Schoeller, B.: Beyond contracts for concurrency. Formal Aspects of Computing 21(4), 319–346 (2008)

    Article  MATH  Google Scholar 

  29. Plotkin, G.D.: A structural approach to operational semantics. The Journal of Logic and Algebraic Programming 60–61, 17–139 (2004)

    MathSciNet  MATH  Google Scholar 

  30. Schmidt, H.W., Chen, J.: Reasoning about concurrent objects. In: Asia-Pacific Software Engineering Conference, p. 86 (1995)

    Google Scholar 

  31. SCOOP website (2011), http://scoop.origo.ethz.ch/

  32. SGS-THOMSON Microelectronics Limited: occam 2.1 reference manual. Tech. rep., SGS-THOMSON Microelectronics Limited (1995)

    Google Scholar 

  33. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Bertrand Meyer Martin Nordio

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics