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\'an Palacios (MiST,, DSIC, Universitat Polit\`ecnica de Val\`encia, Val\`encia, Spain), Alberto

TL;DR
This paper introduces a tool that uses symbolic execution and metaprogramming to detect runtime errors in Erlang programs by analyzing symbolic inputs and constraints.
Contribution
It presents a novel approach combining symbolic execution and constraint logic programming for runtime error detection in dynamically typed Erlang programs.
Findings
Successfully identifies potential runtime errors in Erlang code.
Provides a framework for bounded verification using symbolic inputs.
Lays groundwork for more reliable Erlang software development.
Abstract
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
