Abstract
Model-checking programs is important in the development of a reliable software system. Two approaches might be applied to model-check a system at a source code level. One is to directly apply model-checking algorithm to the programming language; the other to abstract the program source codes into a formal specification, upon which some standard model-checkers can be used to verify system’s properties. Both methods have recently been investigated for model-checking the functional programming language Erlang. Correspondingly, two Erlang model-checkers McErlang and Etomcrl2 are developed. This paper evaluates the two model-checkers by applying them to verify a a distributed and concurrent example - telecoms implemented in Erlang/OTP. A number of system’s key properties are model-checked with both tool-sets. Advantages and disadvantages upon the uses of Etomcrl2 and McErlang are compared and summarized. Through such a case study, we intend to evaluate the two model-checkers on their effectiveness when verifying distributed and concurrent systems, and propose suggestions for their future work.
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
Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)
Arts, T., Benac-Earle, C., Penas, J.J.S.: Translating Erlang to μCRL. In: Kishinevsky, M., Darondeau, P. (eds.) 4th International Conference on Application of Concurrency to System Design, pp. 135–144. IEEE Computer Society, Los Alamitos (June 2004)
Baeten, J.C.M., Weijland, W.P.: Process Algebra. Cambridge University Press, Cambridge (1990)
Benac-Earle, C., Fredlund, L.-Å.: Verification of Language Based Fault-Tolerance. In: Moreno Díaz, R., Pichler, F., Quesada Arencibia, A. (eds.) EUROCAST 2005. LNCS, vol. 3643, pp. 140–149. Springer, Heidelberg (2005)
Benac-Earle, C., Fredlund, L.-Å., Derrick, J.: Verifying Fault-Tolerant Erlang Programs. In: Sagonas, K., Armstrong, J. (eds.) Proceedings of ACM SigPlan Erlang 2005 Workshop, pp. 26–34. ACM Press, New York (September 2005)
Cesarini, F., Thompson, S.: Erlang Programming. O’Reilly Media, Sebastopol (2009)
Fredlund, L., Svensson, H.: McErlang: a Model Checker for a Distributed Functional Programming Language. In: Hinze, R., Ramsey, N. (eds.) 12th ACM SIGPLAN International conference on functional programming (ICFP 2007), pp. 978–1–59593–815–2 (2007)
Groote, J.F., Mathijssena, A., van Weerdenburga, M., Usenkoa, Y.: From μCRL to mCRL2. Electronic Notes in Theoretical Computer Science 162, 191–196 (2006)
Groote, J.F., Ponse, A.: The syntax and sematics of μCRL. In: Ponse, A., Verhoef, C., van Vlijmen, S. (eds.) Algebra of Communicating Processes 1994, Workshop in Computing, pp. 26–62 (1995)
Guo, Q.: Verifying Erlang/OTP Components in μCRL. In: Derrick, J., Vain, J. (eds.) FORTE 2007. LNCS, vol. 4574, pp. 227–246. Springer, Heidelberg (2007)
Guo, Q., Derrick, J.: Verification of Timed Erlang/OTP Components Using the Process Algebra μCRL. In: Thompson, S., Fredlund, L.-Å. (eds.) 6th ACM SIGPLAN Erlang Workshop, pp. 55–64. ACM Press, New York (2007)
Guo, Q., Derrick, J.: Formally Based Tool Support for Model Checking Erlang Applications. International Journal on Software Tools for Technology Transfer (2010) (under review)
Guo, Q., Derrick, J., Hoch, C.: Verifying Erlang Telecommunication Systems with the Process Algebra μCRL. In: Suzuki, K., Higashino, T., Yasumoto, K., El-Fakih, K. (eds.) FORTE 2008. LNCS, vol. 5048, pp. 201–217. Springer, Heidelberg (2008)
Havelund, K., Lowry, M., Penix, J.: Formal Analysis of a Space-Craft Controller Using SPIN. IEEE Transactions on Software Engineering 27(8), 749–765 (2001)
Holzmann, H.: Design and Validation of Computer Protocols. Prentice-Hall, Englewood Cliffs (1991)
Svensson, H.: Implementing an LTL-to-Büchi translator in Erlang: a protest experience report. In: 8th ACM SIGPLAN Erlang Workshop, pp. 63–70. ACM Press, New York (September 2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Guo, Q., Derrick, J., Benac Earle, C., Fredlund, LÅ. (2010). Model-Checking Erlang – A Comparison between EtomCRL2 and McErlang. In: Bottaci, L., Fraser, G. (eds) Testing – Practice and Research Techniques. TAIC PART 2010. Lecture Notes in Computer Science, vol 6303. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15585-7_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-15585-7_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15584-0
Online ISBN: 978-3-642-15585-7
eBook Packages: Computer ScienceComputer Science (R0)