Designing programs that check their work
STOC '89 Proceedings of the twenty-first annual ACM symposium on Theory of computing
BEG: a generator for efficient back ends
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Self-testing/correcting with applications to numerical problems
STOC '90 Proceedings of the twenty-second annual ACM symposium on Theory of computing
Action semantics
Normal form approach to compiler design
Acta Informatica
Designing programs that check their work
Journal of the ACM (JACM)
Semantic Lego
Evolving algebras 1993: Lipari guide
Specification and validation methods
The semantics of the C++ programming language
Specification and validation methods
Piton: a mechanically verified assembly-level language
Piton: a mechanically verified assembly-level language
Software reliability via run-time result-checking
Journal of the ACM (JACM)
Algebraic processing of programming languages
AMiLP '95 Proceedings of the first international AMAST workshop on Algebraic methods in language processing
Building an optimizing compiler
Building an optimizing compiler
Specification and verification of pipelining in the ARM2 RISC microprocessor
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Modular design for the Java virtual machine architecture
Architecture design and validation methods
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Compiler Specification and Verification
Compiler Specification and Verification
Compiler Construction
Defining the Java Virtual Machine as Platform for Provably Correct Java Compilation
MFCS '98 Proceedings of the 23rd International Symposium on Mathematical Foundations of Computer Science
TACAS '98 Proceedings of the 4th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Construction of Verified Compiler Front-Ends with Program-Checking
PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Occam: Specification and Compiler Correctness - Part I: The Primary Model
PROCOMET '94 Proceedings of the IFIP TC2/WG2.1/WG2.2/WG2.3 Working Conference on Programming Concepts, Methods and Calculi
A Practical Method for Rigorously Controllable Hardware Design
ZUM '97 Proceedings of the 10th International Conference of Z Users on The Z Formal Specification Notation
Actress: An Action Semantics Directed Compiler Generator
CC '92 Proceedings of the 4th International Conference on Compiler Construction
Provably Correct Compiler Development and Implementation
CC '92 Proceedings of the 4th International Conference on Compiler Construction
The Semantics of the C Programming Language
CSL '92 Selected Papers from the Workshop on Computer Science Logic
An analysis of errors and their causes in system programs
Proceedings of the international conference on Reliable software
A compiler generator for semantic grammars
A compiler generator for semantic grammars
Tutorial: the ASM method for system design and analysis. a tutorial introduction
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
Using the CASM language for simulator synthesis and model verification
Proceedings of the 2013 Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools
Hi-index | 0.00 |
A verifying compiler ensures that the compiled code is always correct but the compiler may also terminate with an error mesage and then fails to generate code. We argue that with respect to compiler correctness this is the best possible result which can be achieved in practice. Such a compiler may even include unverified code provided the results of such code can be proven correct independently from how they are generated.We then show how abstract state machines (ASMs) can be used to uniformly describe the dynamic semantics of the programs being compiled across the various intermediate transformation steps occurring within a compiler. Besides being a convenient tool for describing dynamic semantics the fact that we do not have to switch between different descriptional methods is found to be extremely useful.