Advances in software inspections
IEEE Transactions on Software Engineering
Toward compiler implementation correctness proofs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Common LISP: the language
A computational logic handbook
A computational logic handbook
The Z notation: a reference manual
The Z notation: a reference manual
Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
The C programming language
Normal form approach to compiler design
Acta Informatica
Piton: a mechanically verified assembly-level language
Piton: a mechanically verified assembly-level language
The ProCoS Approach to Correct Systems
Real-Time Systems - Special issue on safety-critical systems
Translation validation for an optimizing compiler
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Compiler verification revisited
Computer-Aided reasoning
A Discipline of Programming
The verifying compiler: A grand challenge for computing research
Journal of the ACM (JACM)
Foundations of Computer Science: Potential - Theory - Cognition, to Wilfried Brauer on the occasion of his sixtieth birthday
Program Construction, International Summer Schoo
PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume 2: Tutorials
On trojan horses of thompson-goerigk-type, their generation, intrusion, detection and prevention
Concurrency, Compositionality, and Correctness
Hi-index | 0.00 |
The article starts out from the observation that software engineering splits in two large activity areas: Software specification with its verification and software implementation with its verification. To find answers to the question in the title the article studies a practical systems software engineering area where theory is better developed than compared to other areas: Compiler construction. Our answer is a conclusion from work in the DFG-project Verifix, U.Karlsruhe, U.Kiel, U.Ulm, 1995-2003. One very complex cooperational task has been construction of a so called initial correct compiler for a realistic high level programming (and compiler writing) language correctly implemented and executed on a real life host processor. The interface between compiling specification and compiler implementation is given by algebraic-style, conditional formula transformation or program term rewriting rules which the specifier figures out and must prove correct w. r. t. source program and target processor semantics and data and states representations. Intensive cooperation of compiling specifiers and compiler implementers has revealed that the implementer's mathematical reasoning is algebraic reasoning of moderate depth. The specifier overtakes semantical issues and does induction proofs, a field of much more intricate mathematical reasoning.