Abstract
The concurrent functional language Erlang has a number of distinguishing features, like dynamic typing, concurrency via asynchronous message passing or hot code loading, that make it especially appropriate for distributed, fault-tolerant, soft real-time applications. In this paper, we introduce a symbolic execution technique for Erlang. We discuss how both an overapproximation and an underapproximation of the concrete semantics can be obtained. We illustrate our approach through some examples. To the best of our knowledge, this is the first attempt to formalize symbolic execution in the context of this language, where previous approaches have only considered exploring different schedulings but have not dealt with symbolic data.
This work has been partially supported by the Spanish Ministerio de Economía y Competitividad (Secretaría de Estado de Investigación, Desarrollo e Innovación) under grant TIN2013-44742-C4-1-R and by the Generalitat Valenciana under grant PROMETEO/2011/052.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Armstrong, J., Virdig, R., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice Hall, Englewood Cliffs (1996)
Arts, T., Hughes, J., Johansson, J., Wiger, U.T.: Testing telecoms software with quviq QuickCheck. In: Proceedings of the Erlang Workshop, pp. 2–10. ACM (2006)
Benac Earle, C.: Symbolic program execution using the Erlang verification tool. In: Proceedings of the 9th Int’l Workshop on Functional and Logic Programming (WFLP 2000), pp. 42–55 (2000)
Claessen, K., Svensson, H.: A semantics for distributed Erlang. In: Proceedings of the 2005 ACM SIGPLAN Workshop on Erlang, pp. 78–87. ACM (2005)
Felleisen, M., Friedman, D.P., Kohlbecker, E.E., Duba, B.F.: A syntactic theory of sequential control. Theor. Comput. Sci. 52, 205–237 (1987)
Fredlund, L.-A.: A framework for reasoning about Erlang code. Ph.D. thesis, The Royal Institute of Technology, Sweeden (2001)
Fredlund, L.-A., Svensson, H.: McErlang: a model checker for a distributed functional programming language. In: Proceedings of ICFP 2007, pp. 125–136. ACM (2007)
Godefroid, P., Klarlund, N., Sen, K.: DART: directed automated random testing. In: Proceedings of PLDI 2005, pp. 213–223. ACM (2005)
Huch, F.: Verification of Erlang programs using abstract interpretation and model checking. In: Proceedings of ICFP 1999, pp 261–272. ACM (1999)
Noll, T.: A Rewriting Logic Implementation of Erlang. Electr. Notes Theor. Comput. Sci. 44(2), 206–224 (2001)
Noll, T.: Equational Abstractions for Model Checking Erlang Programs. Electr. Notes Theor. Comput. Sci. 118, 145–162 (2005)
Pasareanu, C.S., Visser, W., Bushnell, D.H., Geldenhuys, J., Mehlitz, P.C., Rungta, N.: Symbolic PathFinder: integrating symbolic execution with model checking for Java bytecode analysis. Autom. Softw. Eng., 20(3), 391–425 (2013)
Sen, K., Marinov, D., Agha, G.: CUTE: a concolic unit testing engine for C. In: Proceedings of ESEC/SIGSOFT FSE 2005, pp. 263–272. ACM (2005)
Svensson, H., Fredlund, L.-A., Benac Earle, C.: A unified semantics for future Erlang. In: Proceedings of the Erlang Workshop, pp. 23–32. ACM (2010)
Svensson, H., Fredlund, L.-A.: A more accurate semantics for distributed Erlang. In: Proceedings of the Erlang Workshop, pp. 43–54. ACM (2007)
Vidal, G.: Towards erlang verification by term rewriting. In: Gupta, G., Peña, R. (eds.) LOPSTR 2013, LNCS 8901. LNCS, vol. 8901, pp. 109–126. Springer, Heidelberg (2014)
Vidal, G.: Symbolic execution in Erlang. Technical report, DSIC, UPV (2014). http://users.dsic.upv.es/~gvidal/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Vidal, G. (2015). Towards Symbolic Execution in Erlang. In: Voronkov, A., Virbitskaite, I. (eds) Perspectives of System Informatics. PSI 2014. Lecture Notes in Computer Science(), vol 8974. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-46823-4_28
Download citation
DOI: https://doi.org/10.1007/978-3-662-46823-4_28
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-46822-7
Online ISBN: 978-3-662-46823-4
eBook Packages: Computer ScienceComputer Science (R0)