Bounded Symbolic Execution for Runtime Error Detection of Erlang Programs

Emanuele De Angelis
(DEC, University "G. d'Annunzio" of Chieti-Pescara, Pescara, Italy)
Fabio Fioravanti
(DEC, University "G. d'Annunzio" of Chieti-Pescara, Pescara, Italy)
Adrián Palacios
(MiST, DSIC, Universitat Politècnica de València, València, Spain)
Alberto Pettorossi
(University of Roma Tor Vergata, Roma, Italy)
Maurizio Proietti
(CNR-IASI, Roma, Italy)

Dynamically typed languages, like Erlang, allow developers to quickly write programs without explicitly providing any type information on expressions or function definitions. However, this feature makes those languages less reliable than statically typed languages, where many runtime errors can be detected at compile time. In this paper, we present a preliminary work on a tool that, by using the well-known techniques of metaprogramming and symbolic execution, can be used to perform bounded verification of Erlang programs. In particular, by using Constraint Logic Programming, we develop an interpreter that, given an Erlang program and a symbolic input for that program, returns answer constraints that represent sets of concrete data for which the Erlang program generates a runtime error.

In Temesghen Kahsai and German Vidal: Proceedings 5th Workshop on Horn Clauses for Verification and Synthesis (HCVS 2018), Oxford, UK, 13th July 2018, Electronic Proceedings in Theoretical Computer Science 278, pp. 19–26.
Published: 12th September 2018.

ArXived at: https://dx.doi.org/10.4204/EPTCS.278.4 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org