Model-Checking Erlang – A Comparison between EtomCRL2 and McErlang
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.
KeywordsErlang Model Checking Program Source Code Etomcrl2 McErlang
Unable to display preview. Download preview PDF.
- 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
- 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
- 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
- 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
- 16.Holzmann, H.: Design and Validation of Computer Protocols. Prentice-Hall, Englewood Cliffs (1991)Google Scholar