Retrofitting Symbolic Holes to LLVM IR

06/10/2020
by   Bruce Collie, et al.
0

Symbolic holes are one of the fundamental building blocks of solver-aided and interactive programming. Unknown values can be soundly integrated into programs, and automated tools such as SAT solvers can be used to prove properties of programs containing them. However, supporting symbolic holes in a programming language is challenging; specifying interactions of holes with the type system and execution semantics requires careful design. This paper motivates and introduces the implementation of symbolic holes with unknown type to LLVM IR, a strongly-typed compiler intermediate language. We describe how such holes can be implemented safely by abstracting unsound and type-unsafe details behind a new primitive IR manipulation. Our implementation co-operates well with existing features such as type and dependency checking. Finally, we highlight potentially fruitful areas for investigation using our implementation.

READ FULL TEXT

page 1

page 2

page 3

research
08/05/2019

Mull it over: mutation testing based on LLVM

This paper describes Mull, an open-source tool for mutation testing base...
research
05/09/2023

Engineering a Formally Verified Automated Bug Finder

Symbolic execution is a program analysis technique executing programs wi...
research
09/16/2022

Symbolic Execution for Randomized Programs

We propose a symbolic execution method for programs that can draw random...
research
03/13/2019

SymPas: Symbolic Program Slicing

Program slicing is a technique for simplifying programs by focusing on s...
research
12/26/2022

Modular Formal Verification of Rust Programs with Unsafe Blocks

Rust is a modern systems programming language whose type system guarante...
research
05/31/2021

Gillian: A Multi-Language Platform for Unified Symbolic Analysis

This is an evolving document describing the meta-theory, the implementat...
research
04/17/2019

Relay: A High-Level IR for Deep Learning

Frameworks for writing, compiling, and optimizing deep learning (DL) mod...

Please sign up or login with your details

Forgot password? Click here to reset