Skip to main content

Model-Checking Erlang – A Comparison between EtomCRL2 and McErlang

  • Conference paper
Testing – Practice and Research Techniques (TAIC PART 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6303))

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.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

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.

Similar content being viewed by others

References

  1. Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)

    Google Scholar 

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

    Google Scholar 

  3. Baeten, J.C.M., Weijland, W.P.: Process Algebra. Cambridge University Press, Cambridge (1990)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  6. CADP, http://www.inrialpes.fr/vasy/cadp/

  7. Cesarini, F., Thompson, S.: Erlang Programming. O’Reilly Media, Sebastopol (2009)

    MATH  Google Scholar 

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

    Google Scholar 

  9. Groote, J.F., Mathijssena, A., van Weerdenburga, M., Usenkoa, Y.: From μCRL to mCRL2. Electronic Notes in Theoretical Computer Science 162, 191–196 (2006)

    Article  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

  13. Guo, Q., Derrick, J.: Formally Based Tool Support for Model Checking Erlang Applications. International Journal on Software Tools for Technology Transfer (2010) (under review)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

  16. Holzmann, H.: Design and Validation of Computer Protocols. Prentice-Hall, Englewood Cliffs (1991)

    Google Scholar 

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

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics