Reference. Finding and Understanding Bugs in C Compilers
Cite
Cited by (13)
Programmable Property-Based Testing keles-2026-programmable
Cobblestone: A Divide-and-Conquer Approach for Automating Formal Verification kasibatla-2026-cobblestone
Intrinsic Verification of Parsers and Formal Grammar Theory in Dependent Lambek Calculus intrinsic-verification-of-parsers
We present Dependent Lambek Calculus (Lambek), a domain-specific dependent type theory for verified parsing and formal grammar theory. In Lambek, linear types are used as a syntax for formal grammars, and parsers can be written as linear terms. The linear typing restriction provides a form of intrinsic verification that a parser yields only valid parse trees for the input string. We demonstrate the expressivity of this system by showing that the combination of inductive linear types and dependency on non-linear data can be used to encode commonly used grammar formalisms such as regular and context-free grammars as well as traces of various types of automata. Using these encodings, we define parsers for regular expressions using deterministic automata, as well as examples of verified parsers of context-free grammars.
We present a denotational semantics of our type theory that interprets the linear types as functions from strings to sets of abstract parse trees and terms as parse transformers. Based on this denotational semantics, we have made a prototype implementation of Lambek using a shallow embedding in the Agda proof assistant. All of our examples parsers have been implemented in this prototype implementation.
QEDCartographer: Automating Formal Verification Using Reward-Free Reinforcement Learning sanchezstern-2025-qedcartographer
CF-GKAT: Efficient Validation of Control-Flow Transformations zhang-2025-cf
Generating Well-Typed Terms That Are Not “Useless” frank-2024-generating
Correctly Compiling Proofs About Programs Without Proving Compilers Correct seo-2024-correctly
Baldur: Whole-Proof Generation and Repair with Large Language Models first-2023-baldur
Galápagos: Developing Verified Low Level Cryptography on Heterogeneous Hardwares zhou-2023-galapagos
Deriving efficient program transformations from rewrite rules li-2021-deriving
QED at Large: A Survey of Engineering of Formally Verified Software ringer-2019-qed
The HACMS program: using formal methods to eliminate exploitable bugs fisher-2017-the
Fair enumeration combinators new_fetscher_findler_mccarthy_2017
Cites 32 works (1 here)
With notes (1)
Formal verification of a realistic compiler leroy_formal_2009
External (31)
- Bringing extensibility to verified compilers (2010)
- Undefined behavior in Google NaCl (issue 245) (2010)
- seL4 (2009)
- Formal Verification of Avionics Software Products (2009)
- Automated test program generation for an industrial optimizing compiler (2009)
- TCC: Tiny C compiler, ver. 0.9.25 (2009)
- Volatiles are miscompiled, and what to do about it (2008)
- Grammar-based whitebox fuzzing (2008)
- Practical testing of a C99 compiler using output comparison (2007)
- Random Program Generator (Turner) (2007)
- HDD (2006)
- Delta ver. 2006.08.03 (Wilkerson) (2006)
- Cutpoints for formal equivalence verification of embedded software (2005)
- Random testing of C calling conventions (2005)
- How compilers and tools differ for embedded systems (2005)
- ISO/IEC 9899:TC2: Programming Languages—C (2005)
- An integrated experimental environment for distributed systems and networks (2002)
- Simplifying and isolating failure-inducing input (2002)
- Random testing (2001)
- Differential testing for software (1998)
- ACVS ANSI/ISO/FIPS-160 C validation suite, ver. 4.5 (Perennial) (1998)
- Compiler test case generation methods: a survey and assessment (1997)
- The automatic generation of test cases for optimizing Fortran compilers (1996)
- An empirical study of the reliability of UNIX utilities (1990)
- An experimental evaluation of the assumption of independence in multiversion programming (1986)
- A sentence generator for testing parsers (1972)
- Automatic generation of test cases (1970)
- A general test data generator for COBOL (1962)
- SuperTest C/C++ compiler test and validation suite (ACE)
- The Plum Hall validation suite for C
- comp.lang.c frequently asked questions (Summit)