scispace - formally typeset
Open Access

An Executable Formal Semantics of C with Applications: Technical Report

TLDR
In this paper, the authors present an executable formal semantics of C. The semantics yields an interpreter, debugger, state space search tool, and model checker, which is shown capable of automatically finding program errors, both statically and at runtime.
Abstract
This paper describes an executable formal semantics of C. Being executable, the semantics has been thoroughly tested against the GCC torture test suite and successfully passes 770 of 776 test programs. It is the most complete and thoroughly tested formal definition of C to date. The semantics yields an interpreter, debugger, state space search tool, and model checker “for free”. The semantics is shown capable of automatically finding program errors, both statically and at runtime. It is also used to enumerate nondeterministic behavior.

read more

Citations
More filters
Journal ArticleDOI

Tolerating C Integer Error via Precision Elevation

TL;DR: This paper proposes a novel approach to automate C integer error repair by elevating the precision of arithmetic operations according to a set of code transformation rules, which is fully automatic without requiring code specifications.
Posted Content

Automatic Translation of C Source Code to Eiffel

TL;DR: A source-to-source translation of C code into Eiel, a modern object-oriented programming language, and the supporting tool C2Eif, which supports the entire C language as used in practice, including its usage of native system libraries and inlined assembly code.
Book ChapterDOI

A Formal Semantics of the OSEK/VDX Standard in $${\mathbb {K}}$$ Framework and Its Applications

TL;DR: This work can (1) verify user-defined applications by model checking, and (2) automatically generate test cases for testing of the OSEK/VDX-based operating systems with a formal semantics defined in \(\mathbb K\) that is more flexible and generic.
Dissertation

Practical Verification of Safety-Critical Systems

TL;DR: Practical Verification of Safety-Critical Systems shows real-time verification of safety-critical systems is a viable process and can be turned into a reality-based test procedure.
Book ChapterDOI

One Step at a Time

TL;DR: Big-step and small-step are two popular flavors of operational semantics and it would be useful to choose one and derive the other in a systematic or, preferably, automatic way.
References
More filters
Book

Advanced Compiler Design and Implementation

TL;DR: Advanced Compiler Design and Implementation by Steven Muchnick Preface to Advanced Topics

The C programming language

TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
Book

The C Programming Language

TL;DR: The C Programming Language (2nd Ed.) as discussed by the authors is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Languages (1st Ed.).
Journal ArticleDOI

Conditional rewriting logic as a unified model of concurrency

TL;DR: Maude as discussed by the authors is a programming language whose modules are rewriting logic theories, which is defined and given denotational and operational semantics, and it provides a simple unification of concurrent programming with functional and object-oriented programming and supports high level declarative programming of concurrent systems.
Book ChapterDOI

CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs

TL;DR: The structure of CIL is described, with a focus on how it disambiguates those features of C that were found to be most confusing for program analysis and transformation, allowing a complete project to be viewed as a single compilation unit.
Related Papers (5)