Abstract
This paper critically discusses the different choices that have to be made when defining a fault model for an object-oriented programming language. We consider in particular the ABS language, and analyze the interplay between the fault model and the main features of ABS, namely the cooperative concurrency model, based on asynchronous method invocations whose return results via futures, and its emphasis on static analysis based on invariants.
Partly funded by the EU project FP7-610582 ENVISAGE.
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
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 (1987)
Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)
Baduel, L., et al.: Programming, Composing, Deploying, for the Grid. In: Grid Computing: Software Environments and Tools. Springer (2006)
Beckert, B., Hähnle, R., Schmitt, P.H.: Verification of Object-oriented Software: The KeY Approach. Springer (2007)
Caromel, D.: Service, Asynchrony, and Wait-By-Necessity. Journal of Object Oriented Programming, 12–22 (1989)
Chen, K., Hudak, P., Odersky, M.: Parametric type classes. In: Proc. of LFP 1992, pp. 170–181. ACM (1992)
Cristian, F.: Understanding fault-tolerant distributed systems. Communications of the ACM 34(2), 56–78 (1991)
de Boer, F.S., Clarke, D., Johnsen, E.B.: A complete guide to the future. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 316–330. Springer, Heidelberg (2007)
Din, C.C., Dovland, J., Johnsen, E.B., Owe, O.: Observable behavior of distributed systems: Component reasoning for concurrent objects. Journal of Logic and Algebraic Programming 81(3), 227–256 (2012)
Elnozahy, E.N., Alvisi, L., Wang, Y.-M., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Computing Surveys 34(3), 375–408 (2002)
Goetz, B., Peierls, T., Bloch, J., Bowbeer, J., Holmes, D., Lea, D.: Java Concurrency in Practice. Addison-Wesley (2006)
Göri, G., Johnsen, E.B., Schlatte, R., Stolz, V.: Erlang-style error recovery for concurrent objects with cooperative scheduling. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014, Part II. LNCS, vol. 8803, pp. 5–21. Springer, Heidelberg (2014)
Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science 410(2-3), 202–220 (2009)
Halstead Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Trans. Prog. Lang. Syst. 7(4), 501–538 (1985)
International Telecommunication Union. Open Distributed Processing — Reference Model parts 1–4. Technical report, ISO/IEC, Geneva (July 1995)
Jay, B.: Algebraic data types. In: Pattern Calculus, pp. 149–160. Springer (2009)
Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011)
Johnsen, E.B., Lanese, I., Zavattaro, G.: Fault in the future. In: De Meuter, W., Roman, G.-C. (eds.) COORDINATION 2011. LNCS, vol. 6721, pp. 1–15. Springer, Heidelberg (2011)
JSR166: Concurrency utilities, http://java.sun.com/j2se/1.5.0/docs/guide/concurrency
Kramer, J.: Is abstraction the key to computing? Communications of the ACM 50(4), 36–42 (2007)
Lanese, I., Mezzina, C.A., Schmitt, A., Stefani, J.-B.: Controlling reversibility in higher-order pi. In: Katoen, J.-P., König, B. (eds.) CONCUR 2011. LNCS, vol. 6901, pp. 297–311. Springer, Heidelberg (2011)
Lavender, R.G., Schmidt, D.C.: Active object: an object behavioral pattern for concurrent programming. In: Pattern Languages of Program Design 2, pp. 483–499. Addison-Wesley Longman Publishing Co., Inc. (1996)
Liskov, B.H., Shrira, L.: Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In: PLDI, pp. 260–267. ACM Press (1988)
Löh, A., Hinze, R.: Open data types and open functions. In: Proc. of PPDP 2006, pp. 133–144. ACM (2006)
Morris, B.: CActive and Friends. Symbian Developer Network (November 2007), http://developer.symbian.com/main/downloads/papers/CActiveAndFriends/CActiveAndFriends.pdf
Nienaltowski, P.: Practical framework for contract-based concurrent object-oriented programming. PhD thesis, Department of Computer Science, ETH Zurich (2007)
Pitt, E., McNiff, K.: Java.Rmi: The Remote Method Invocation Guide. Addison-Wesley Longman Publishing Co., Inc. (2001)
Ponge, J.: Better resource management with Java SE 7: Beyond syntactic sugar (May 2011), http://www.oracle.com/technetwork/articles/java/trywithresources-401775.html
Rémy, D.: Type checking records and variants in a natural extension of ml. In: Proc. of POPL 1989, pp. 77–88. ACM (1989)
Schäfer, J., Poetzsch-Heffter, A.: JCoBox: Generalizing active objects to concurrent components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010)
Waldo, J., Wyant, G., Wollrath, A., Kendall, S.: A note on distributed computing. In: Vitek, J., Tschudin, C. (eds.) MOS 1996. LNCS, vol. 1222, pp. 49–64. Springer, Heidelberg (1997)
Yonezawa, A.: ABCL: An Object-Oriented Concurrent System. MIT Press (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lanese, I. et al. (2014). Fault Model Design Space for Cooperative Concurrency. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Specialized Techniques and Applications. ISoLA 2014. Lecture Notes in Computer Science, vol 8803. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-45231-8_3
Download citation
DOI: https://doi.org/10.1007/978-3-662-45231-8_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-45230-1
Online ISBN: 978-3-662-45231-8
eBook Packages: Computer ScienceComputer Science (R0)