Abstract
Programmers of embedded systems often develop software in assembly code due to critical speed and/or space constraints and inadequate support from compilers. Many embedded 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 on a program will not change the program’s semantic behavior. This paper describes a general approach for validation of many low-level code-improving transformations made either by a compiler or specified by hand.
Supported by NSF grant CCR-9904943.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
M. E. Benitez and J. W. Davidson. A Portable Global Optimizer and Linker. In Proceedings of the SIGPLAN’ 88 Symposium on Programming Language Design and Implementation, pages 329–338, June 1988.
A. Cimatti and et. al. A Provably Correct Embedded Verifier for the Certification of Safety Critical Software. In International Conference on Computer Aided Verification, pages 202–213, June 1997.
P. Dybjer. Using Domain Algebras to Prove the Correctness of a Compiler. Lecture Notes in Computer Science, 182:329–338, 1986.
J. Guttman, J. Ramsdell, and M. Wand. VLISP: a Verified Implementation of Scheme. Lisp and Symbolic Computation, 8:5–32, 1995.
S. Horwitz. Identifying the Semantic and Textual Differences between Two Versions of a Program. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 234–245, 1990.
F. Morris. Advice on Structuring Compilers and Proving Them Correct. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 144–152, 1973.
G. Necula. Proof-Carrying Code. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 106–119, January 1997.
G. Necula and P. Lee. The Design and Implementation of a Certifying Compiler. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 333–344, 1998.
M. Rinard and D. Marinov. Credible Compilation with Pointers. In Proceedings of the FLoC Workshop on Run-Time Result Verfication, 1999.
D. Tarditi, J. Morrisett, P. Cheng, C. Stone, R. Harper, and P. Lee. TIL: A Type-Directed Optimizing Compiler for ML. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 181–192, 1996.
R. van Engelen, L. Wolters, and G. Cats. Ctadel: A generator of multi-platform high performance codes for pde-based scientific applications. In Proceedings of the 10th ACM International Conference on Supercomputing, pages 86–93, May 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
van Engelen, R., Whalley, D., Yuan, X. (2001). Automatic Validation of Code-Improving Transformations. In: Davidson, J., Min, S.L. (eds) Languages, Compilers, and Tools for Embedded Systems. LCTES 2000. Lecture Notes in Computer Science, vol 1985. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45245-1_15
Download citation
DOI: https://doi.org/10.1007/3-540-45245-1_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41781-1
Online ISBN: 978-3-540-45245-4
eBook Packages: Springer Book Archive