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.
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
Similar content being viewed by others
Keywords
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.
References
Ábrahám, E., et al.: An assertion-based proof system for multithreaded Java. TCS 331(2-3), 251–290 (2005)
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)
Brinch Hansen, P.: Java’s insecure parallelism. ACM SIGPLAN Notices 34(4), 38–45 (1999)
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)
Clavel, M., et al.: Maude: Specification and programming in rewriting logic. Theoretical Computer Science 285, 187–243 (2002)
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)
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)
Duarte, C.H.C.: Proof-theoretic foundations for the design of actor systems. Mathematical Structures in Computer Science 9(3), 227–252 (1999)
Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science 103(2), 235–271 (1992)
Flanagan, C., Felleisen, M.: The semantics of future and an application. J. Funct. Program. 9(1), 1–31 (1999)
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)
Gerth, R., de Roever, W.P.: A proof system for concurrent ada programs. Sci. Comput. Program. 4(2), 159–204 (1984)
Halstead Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems 7(4), 501–538 (1985)
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)
Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM 17(10), 549–557 (1974)
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)
International Telecommunication Union. Open Distributed Processing — Reference Model parts 1–4. Technical report, ISO/IEC, Geneva (July 1995)
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)
Lavender, R.G., Schmidt, D.C.: Active object: an object behavioral pattern for concurrent programming. In: Proc. Pattern Languages of Programs (1995)
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)
Niehren, J., Schwinghammer, J., Smolka, G.: A concurrent lambda calculus with futures. Theoretical Computer Science 364, 338–356 (2006)
Reppy, J.H.: Concurrent Programming in ML. Cambridge University Press, Cambridge (1999)
Rossberg, A., et al.: Alice Through the Looking Glass. In: Trends in Functional Programming, vol. 5, pp. 79–96. Intellect Books, Bristol (Fev. 2006)
Van Roy, P., Haridi, S.: Concepts, Techniques, and Models of Computer Programming. MIT Press, Cambridge (Mar. 2004)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights 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
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)