Abstract
Building compilers that generate correct code is difficult. In this paper we present a compiler testing technique that closes the gap between actual compiler implementations and correct compilers. Using formal specifications of procedure calling conventions, we have built a target-sensitive test suite generator that builds test cases for a specific aspect of compiler code generators the procedure calling sequence generator. By exercising compilers with these target-specific test suites, our automated testing tool has exposed bugs in every compiler tested. These compilers include ones that have been in heavy use for many years. The detected bugs cause more than 14,000 test cases to fail.
- ADLU91 Alfred V. Aho, Anton T. Dahbura, David Lee, and M. Uyar. An optimization technique for protocol conformance test generation based on uio sequences and rural chinese postman tours. IEEE Transactions on Communications, 39(11): 1604--1615, November, 1991.Google ScholarCross Ref
- BD88 Manuel E. Benitez and Jack W. Davidson. A portable global optimizer and linker. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 329--338, July 1988. Google ScholarDigital Library
- BD94 Manuel E. Benitez and Jack W. Davidson. The advantages of machine-dependent global optimization. In Proceedings of the 1994 Conference on Programming Languages and Systems Architectures, pages 105--- 124, March 1994. Google ScholarDigital Library
- BD95 Mark W. Bailey and Jack W. Davidson. A formal model and specification language for procedure calling conventions. In Proceedings of the 22nd SIGPLAN- SIGACT Symposium on Principles of Programming Languages, pages 298--310, January 1995. Google ScholarDigital Library
- FBK+91 Susumu Fujiwara, Gregorv. Bochmann, Ferhat Khendek, Mokhtar Amalou, and Abderrazak Ghedamsi. Test selection based on finite state models. IEEE Transactions on Software Engineering, 17(6):591---603, June 1991. Google ScholarDigital Library
- FH91 Christopher W. Fraser and David R. Hanson. A code generation interface for ANSI-C. Software~Practice and Experience, 21(9), 1991. Google ScholarDigital Library
- Hen64 F.C. Hennie. Fault detecting experiments for sequential circuits. In Proceedings of the Fifth Annual Symposiurn on Switching Theory and Logical Design, pages 95--- 110, November 1964.Google Scholar
- HYHD95 Richard C. Ho, C. Han Yang, Mark A. Horowitz, and David L. Dill. Architecture validation for processors. In ISCA95, pages 404---413, 1995. Google ScholarDigital Library
- Joh S.C. Johnson. A tour through the portable c compiler.Google Scholar
- Koh78 Zvi Kohavi. Switching and Finite Automata Theory. McGraw-Hill, second edition, 1978. Google ScholarDigital Library
- Mea55 G.H. Mealy. A method for synthesizing sequential circuits. Bell System Technical Journal, 35(5):1045-- 1079. 1955.Google ScholarCross Ref
- SL89 DeepinderP. Sidhu and Ting-Kau Leung. Formal methods for protocol testing: A detailed study. IEEE Transactions of Software Engineering, 15(4):413-- 426, April 1989. Google ScholarDigital Library
- Sta92 Richard M. Stallman. Using and Porting GNU CC (Version 2.0). Free Software Foundation, Inc., February 1992.Google Scholar
- YL95 Mihalis Yannakakis and David Lee. Testing finite state machines: Fault detection. Journal of Computer and System Sciences, 50:209--227, 1995. Google ScholarDigital Library
Index Terms
- Target-sensitive construction of diagnostic programs for procedure calling sequence generators
Recommendations
Target-sensitive construction of diagnostic programs for procedure calling sequence generators
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationBuilding compilers that generate correct code is difficult. In this paper we present a compiler testing technique that closes the gap between actual compiler implementations and correct compilers. Using formal specifications of procedure calling ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12: Proceedings of the 2012 Haskell SymposiumProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
Comments