Abstract programming and program transformation—an approach to reusing programs
Software reusability: vol. 1, concepts and models
Verifying the correctness of compiler transformations on basic blocks using abstract interpretation
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Fundamentals of Deductive Program Synthesis
IEEE Transactions on Software Engineering
Normal form approach to compiler design
Acta Informatica
The TAMPR program transformation system: simplifying the development of numerical software
Modern software tools for scientific computing
Social processes and proofs of theorems and programs
Communications of the ACM
Proving refinement transformations for deriving high-assurance software
HASE '96 Proceedings of the 1996 High-Assurance Systems Engineering Workshop
A component-based approach to building formal analysis tools
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Computer
IEEE Transactions on Software Engineering
A higher-order strategy for eliminating common subexpressions
Computer Languages, Systems and Structures
Hi-index | 4.10 |
As our society becomes more technologically complex, computer systems are finding an alarming number of uses in safety-critical applications. In many such systems, the software component's reliability is essential to the system's safe operation, so it becomes natural to ask, "How can software be made to behave correctly when executed?"Using program transformations to produce trusted software simplifies verification. Program transformations use proven laws to manipulate programs in a manner analogous to algebraic transformations. The authors have sketched how a formal method based on program transformations can be used to construct a verified compiler. Such a compiler has been proved to correctly compile any correct program into assembly language. While the compiler itself may not execute efficiently-- after all, you need only use the verified compiler the last time you compile a program--the transformational approach should enable the verified compiler to produce efficient assembly code.