From definitional interpreter to symbolic executor

Conference Paper (2019)
Author(s)

Adrian D. Mensing (Student TU Delft)

H van Antwerpen (TU Delft - Programming Languages)

Casper Bach Poulsen (TU Delft - Programming Languages)

E. Visser (TU Delft - Programming Languages)

Research Group
Programming Languages
Copyright
© 2019 Adrian D. Mensing, H. van Antwerpen, C.B. Poulsen, Eelco Visser
DOI related publication
https://doi.org/10.1145/3358502.3361269
More Info
expand_more
Publication Year
2019
Language
English
Copyright
© 2019 Adrian D. Mensing, H. van Antwerpen, C.B. Poulsen, Eelco Visser
Research Group
Programming Languages
Pages (from-to)
11-20
ISBN (electronic)
9781450369855
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Symbolic execution is a technique for automatic software validation and verification. New symbolic executors regularly appear for both existing and new languages and such symbolic executors are generally manually (re)implemented each time we want to support a new language. We propose to automatically generate symbolic executors from language definitions, and present a technique for mechanically (but as yet, manually) deriving a symbolic executor from a definitional interpreter. The idea is that language designers define their language as a monadic definitional interpreter, where the monad of the interpreter defines the meaning of branch points. Developing a symbolic executor for a language is a matter of changing the monadic interpretation of branch points. In this paper, we illustrate the technique on a language with recursive functions and pattern matching, and use the derived symbolic executor to automatically generate test cases for definitional interpreters implemented in our defined language.

Files

MensingAPV20.pdf
(pdf | 0.756 Mb)
License info not available