Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us Track your research
Search
Cart
Book cover

European Symposium on Programming

ESOP 2007: Programming Languages and Systems pp 316–330Cite as

  1. Home
  2. Programming Languages and Systems
  3. Conference paper
A Complete Guide to the Future

A Complete Guide to the Future

  • Frank S. de Boer1,
  • Dave Clarke1 &
  • Einar Broch Johnsen2 
  • Conference paper
  • 1329 Accesses

  • 101 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 4421)

Abstract

We present the semantics and proof system for an object-oriented language with active objects, asynchronous method calls, and futures. The language, based on Creol, distinguishes itself in that unlike active object models, it permits more than one thread of control within an object, though, unlike Java, only one thread can be active within an object at a given time and rescheduling occurs only at specific release points. Consequently, reestablishing an object’s monitor invariant is possible at specific well-defined points in the code. The resulting proof system shows that this approach to concurrency is simpler for reasoning than, say, Java’s multithreaded concurrency model. From a methodological perspective, we identify constructs which admit a simple proof system and those which require, for example, interference freedom tests.

Keywords

  • Proof System
  • Release Point
  • Method Call
  • Proof Theory
  • Method Invocation

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

This research is in the context of the EU project IST-33826 CREDO: Modeling and analysis of evolutionary structures for distributed services (http://credo.cwi.nl).

Chapter PDF

Download to read the full chapter text

References

  1. Ábrahám, E., et al.: An assertion-based proof system for multithreaded Java. TCS 331(2-3), 251–290 (2005)

    CrossRef  MATH  Google Scholar 

  2. Agha, G., Hewitt, C.: Actors: A conceptual foundation for concurrent object-oriented programming. In: Research Directions in Object-Oriented Programming, pp. 49–74. MIT Press, Cambridge (1987)

    Google Scholar 

  3. Brinch Hansen, P.: Java’s insecure parallelism. ACM SIGPLAN Notices 34(4), 38–45 (1999)

    CrossRef  Google Scholar 

  4. Caromel, D., Henrio, L., Serpette, B.: Asynchronous and deterministic objects. In: Proceedings of the 31st ACM Symposium on Principles of Programming Languages (POPL’04), pp. 123–134. ACM Press, New York (2004)

    CrossRef  Google Scholar 

  5. Clavel, M., et al.: Maude: Specification and programming in rewriting logic. Theoretical Computer Science 285, 187–243 (2002)

    CrossRef  MathSciNet  MATH  Google Scholar 

  6. de Boer, F.S.: A WP-calculus for OO. In: Thomas, W. (ed.) ETAPS 1999 and FOSSACS 1999. LNCS, vol. 1578, pp. 135–149. Springer, Heidelberg (1999)

    CrossRef  Google Scholar 

  7. Dovland, J., Johnsen, E.B., Owe, O.: Verification of concurrent objects with asynchronous method calls. In: Proceedings of the IEEE International Conference on Software Science, Technology & Engineering (SwSTE’05), Feb. 2005, pp. 141–150. IEEE Computer Society Press, Los Alamitos (2005)

    CrossRef  Google Scholar 

  8. Duarte, C.H.C.: Proof-theoretic foundations for the design of actor systems. Mathematical Structures in Computer Science 9(3), 227–252 (1999)

    CrossRef  MathSciNet  MATH  Google Scholar 

  9. Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science 103(2), 235–271 (1992)

    CrossRef  MathSciNet  MATH  Google Scholar 

  10. Flanagan, C., Felleisen, M.: The semantics of future and an application. J. Funct. Program. 9(1), 1–31 (1999)

    CrossRef  MathSciNet  MATH  Google Scholar 

  11. Flatt, M., Krishnamurthi, S., Felleisen, M.: A programmer’s reduction semantics for classes and mixins. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 241–269. Springer, Heidelberg (1999)

    CrossRef  Google Scholar 

  12. Gerth, R., de Roever, W.P.: A proof system for concurrent ada programs. Sci. Comput. Program. 4(2), 159–204 (1984)

    CrossRef  MATH  Google Scholar 

  13. Halstead Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems 7(4), 501–538 (1985)

    CrossRef  MATH  Google Scholar 

  14. Baker Jr., H.G., Hewitt, C.: The incremental garbage collection of processes. SIGPLAN Notices (Proceeding of the Symposium on Artificial Intelligence Programming Languages) 12, 11 (1977)

    CrossRef  Google Scholar 

  15. Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM 17(10), 549–557 (1974)

    CrossRef  MATH  Google Scholar 

  16. Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Transactions on Programming Languages and Systems 23(3), 396–450 (2001)

    CrossRef  Google Scholar 

  17. International Telecommunication Union. Open Distributed Processing — Reference Model parts 1–4. Technical report, ISO/IEC, Geneva (July 1995)

    Google Scholar 

  18. Johnsen, E.B., Owe, O., Yu, I.C.: Creol: A type-safe object-oriented model for distributed concurrent systems. Theoretical Computer Science 365(1–2), 23–66 (2006)

    CrossRef  MathSciNet  MATH  Google Scholar 

  19. Lavender, R.G., Schmidt, D.C.: Active object: an object behavioral pattern for concurrent programming. In: Proc. Pattern Languages of Programs (1995)

    Google Scholar 

  20. Liskov, B.H., Shrira, L.: Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In: Wise, D.S. (ed.) Proceedings of the SIGPLAN Conference on Programming Lanugage Design and Implementation (PLDI’88), Atlanta, GE, USA, June 1988, pp. 260–267. ACM Press, New York (1988)

    Google Scholar 

  21. Niehren, J., Schwinghammer, J., Smolka, G.: A concurrent lambda calculus with futures. Theoretical Computer Science 364, 338–356 (2006)

    CrossRef  MathSciNet  MATH  Google Scholar 

  22. Reppy, J.H.: Concurrent Programming in ML. Cambridge University Press, Cambridge (1999)

    Google Scholar 

  23. Rossberg, A., et al.: Alice Through the Looking Glass. In: Trends in Functional Programming, vol. 5, pp. 79–96. Intellect Books, Bristol (Fev. 2006)

    Google Scholar 

  24. Van Roy, P., Haridi, S.: Concepts, Techniques, and Models of Computer Programming. MIT Press, Cambridge (Mar. 2004)

    Google Scholar 

  25. Welc, A., Jagannathan, S., Hosking, A.: Safe futures for Java. In: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications (OOPSLA’05), pp. 439–453. ACM Press, New York (2005)

    CrossRef  Google Scholar 

  26. Yonezawa, A., Briot, J.-P., Shibayama, E.: Object-oriented concurrent programming in ABCL/1. Sigplan Notices (Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA’86) 21(11), 258–268 (1986)

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

  1. CWI, Amsterdam, The Netherlands

    Frank S. de Boer & Dave Clarke

  2. Dept. of Informatics, University of Oslo, Norway

    Einar Broch Johnsen

Authors
  1. Frank S. de Boer
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Dave Clarke
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Einar Broch Johnsen
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Rocco De Nicola

Rights and permissions

Reprints and Permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

de Boer, F.S., Clarke, D., Johnsen, E.B. (2007). A Complete Guide to the Future. In: De Nicola, R. (eds) Programming Languages and Systems. ESOP 2007. Lecture Notes in Computer Science, vol 4421. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71316-6_22

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-540-71316-6_22

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-71314-2

  • Online ISBN: 978-3-540-71316-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Publish with us

Policies and ethics

search

Navigation

  • Find a journal
  • Publish with us
  • Track your research

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support
  • Cancel contracts here

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature