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.Comment: In Proceedings HCVS 2018, arXiv:1809.0455