A portable global optimizer and linker
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
A mechanically verified language implementation
Journal of Automated Reasoning
Identifying the semantic and textual differences between two versions of a program
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Chains of recurrences—a method to expedite the evaluation of closed-form functions
ISSAC '94 Proceedings of the international symposium on Symbolic and algebraic computation
VLISP: a verified implementation of Scheme
Lisp and Symbolic Computation
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
CTADEL: a generator of multi-platform high performance codes for PDE-based scientific applications
ICS '96 Proceedings of the 10th international conference on Supercomputing
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The design and implementation of a certifying compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Translation validation for an optimizing compiler
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Advice on structuring compilers and proving them correct
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Complete Transformational Toolkit for Compilers
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
More on advice on structuring compilers and proving them correct
Semantics-Directed Compiler Generation, Proceedings of a Workshop
A Provably Correct Embedded Verifier for the Certification of Safety Critical Software
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Automatic validation of code-improving transformations on low-level program representations
Science of Computer Programming - Special issue on program transformation
Hi-index | 0.00 |
Programmers of embeded systems often develop software in assembly code due to inadequate support from compilers and the need to meet critical speed and/or space constraints. Many embeded applications are being used as a component of an increasing number of critical systems. While achieving high performance for these systems is important, ensuring that these systems execute correctly is vital. One portion of this process is to ensure that code-improving transformations applied to a program will not change the program's semantic behavior, which may be jeopardized when transformations are specified manually. This paper describes a general approach for validation of many low-level code-improving transformations made either by a compiler or specified by hand. Initially, we associate a region of the program representation with a code-improving transformation. Afterwards, we calculate the region's effects on the rest of the program before and after the transformation. The transformation is considered valid when the effects before and after the transformation are identical. We implemented an automatic validation system in the vpo compiler. The system is currently able to validate all code-improving transformations in vpo except transformations that affect blocks across loop levels.