The C programming language
Conditional rewriting logic as a unified model of concurrency
Selected papers of the Second Workshop on Concurrency and compositionality
C programming FAQs: frequently asked questions
C programming FAQs: frequently asked questions
Denotational sematics of ANSI C
Computer Standards & Interfaces
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
The Semantics of the C Programming Language
CSL '92 Selected Papers from the Workshop on Computer Science Logic
A study of evaluation order semantics in expressions with side effects
Journal of Functional Programming
A theory of platform-dependent low-level software
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Experience report: OCaml for an industrial-strength static analysis framework
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
A Rewriting Logic Approach to Type Inference
Recent Trends in Algebraic Development Techniques
A framework for modeling the semantics of expression evaluation with abstract state machines
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
All about maude - a high-performance logical framework: how to specify, program and verify systems in rewriting logic
K-Maude: a rewriting based tool for semantics of programming languages
WRLA'10 Proceedings of the 8th international conference on Rewriting logic and its applications
Matching logic: an alternative to hoare/floyd logic
AMAST'10 Proceedings of the 13th international conference on Algebraic methodology and software technology
Matching logic: a new program verification approach (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Finding and understanding bugs in C compilers
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Test-case reduction for C compiler bugs
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Undefined behavior: what happened to my code?
Proceedings of the Asia-Pacific Workshop on Systems
Towards a unified theory of operational and axiomatic semantics
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II
On abstractions for timing analysis in the K framework
FOPARA'11 Proceedings of the Second international conference on Foundational and Practical Aspects of Resource Analysis
Checking reachability using matching logic
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Undefined behavior: what happened to my code?
APSys'12 Proceedings of the Third ACM SIGOPS Asia-Pacific conference on Systems
Hi-Lite: the convergence of compiler technology and program verification
Proceedings of the 2012 ACM conference on High integrity language technology
Using semantics specified in maude to generate test cases
ICTAC'12 Proceedings of the 9th international conference on Theoretical Aspects of Computing
Program analysis scenarios in rascal
WRLA'12 Proceedings of the 9th international conference on Rewriting Logic and Its Applications
WRLA'12 Proceedings of the 9th international conference on Rewriting Logic and Its Applications
Making maude definitions more interactive
WRLA'12 Proceedings of the 9th international conference on Rewriting Logic and Its Applications
A truly concurrent semantics for the K framework based on graph transformations
ICGT'12 Proceedings of the 6th international conference on Graph Transformations
Automatic inference of specifications using matching logic
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Towards formal verification of TLS network packet processing written in C
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
An executable semantics for compcert c
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Separation logic for non-local control flow and block scope variables
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Generating sound and effective memory debuggers
Proceedings of the 2013 international symposium on memory management
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
Towards optimization-safe systems: analyzing the impact of undefined behavior
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Really automatic scalable object-oriented reengineering
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
A trusted mechanised JavaScript specification
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
An operational and axiomatic semantics for non-determinism and sequence points in C
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
The rewriting logic semantics project: A progress report
Information and Computation
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
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 99.2% 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.