Skip to main content

Validating the Translation of an Industrial Optimizing Compiler

  • Conference paper
Automated Technology for Verification and Analysis (ATVA 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3299))

Abstract

The paper presents an approach to the translation validation of an optimizing compiler which translates synchronous C programs into machine code programs. Being synchronous means that both source and target programs are loop free. This enables representation of each of these programs by a single state transformer, and verification of the translation correctness is based on comparison of the source and target state transformers. The approach has been implemented on a tool called MCVT which is also described.

This research was supported in part by the Minerva Center for Verification of Reactive Systems, IST project SafeAir-II, and NSF grant CCR-0205571

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ben-Ari, M.: Mathematical Logic for Computer Science. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  2. Bjørner, N., Browne, I.A., Chang, E., Colón, M., Kapur, A., Manna, Z., Sipma, H.B., Uribe, T.E.: STeP: The Stanford Temporal Prover, User’s Manual. Technical Report STAN-CS-TR-95-1562, Computer Science Department, Stanford University (November 1995)

    Google Scholar 

  3. Crow, J., Owre, S., Rushby, J., Shankar, N., Srivas, M.: A tutorial introduction to PVS. In: Presented at WIFT 1995: Workshop on Industrial-Strength Formal Specification Techniques, Boca Raton, Florida (April 1995)

    Google Scholar 

  4. Cvc lite home page, http://chicory.stanford.edu/CVCL

  5. Wind River. DiabC/C++ Compiler for PowerPC, user’s guide

    Google Scholar 

  6. Engelhardt, K., de Roever, W.P., et al.: Data Refinement: Model-Oriented Proof Methods and their Comparison. Cambridge University Press, Cambridge (1999)

    Google Scholar 

  7. Floyd, R.W.: Assigning meanings to programs. In: Symposia in Applied Mathematics, vol. 19, pp. 19–32 (1967)

    Google Scholar 

  8. Filliâtre, J.C., Owre, S., Rueß, H., Shankar, N.: ICS: integrated canonizer and solver. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, p. 246. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  9. Goos, G., Zimmermann, W.: Verification of compilers. In: Olderog, E.-R., Steffen, B. (eds.) Correct System Design. LNCS, vol. 1710, pp. 201–230. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  10. Goos, G., Zimmermann, W.: Verifying compilers and asms. In: Gurevich, Y., Kutter, P.W., Odersky, M., Thiele, L. (eds.) ASM 2000. LNCS, vol. 1912, pp. 177–202. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  11. Gaul, T., Zimmermann, W., Goerigk, W.: Practical Construction of Correct Compiler Implementations by Runtime Result Verification. In: Proceedings of SCI 2000, International Conference on Information Systems Analysis and Synthesis, Orlando, Florida (2000)

    Google Scholar 

  12. Kelly, W., Maslov, V., Pugh, W., Rosser, E., Shpeisman, T., Wonnacott, D.: The omega library interface guide

    Google Scholar 

  13. Necula, G.: Translation validation of an optimizing compiler. In: Proceedings of the ACM SIGPLAN Conference on Principles of Programming Languages Design and Implementation (PLDI) 2000, pp. 83–95 (2000)

    Google Scholar 

  14. Nelson, G., Oppen, D.: Simplification by cooperating decision procedures. ACM Transactions on Programming Languages and Systems 1(2), 245–257 (1979)

    Article  MATH  Google Scholar 

  15. Book E- Enhanced PowerPC Architecture (2002)

    Google Scholar 

  16. Pnueli, A., Shahar, E.: A platform for combining deductive with algorithmic verification. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 184–195. Springer, Heidelberg (1996)

    Google Scholar 

  17. Pnueli, A., Shankar, N., Singerman, E.: Fair synchronous transition systems and their liveness proofs. In: Ravn, A.P., Rischel, H. (eds.) FTRTFT 1998. LNCS, vol. 1486, pp. 198–209. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  18. Pnueli, A., Siegel, M., Shtrichman, O.: The code validation tool (CVT)- automatic verification of a compilation process. Software Tools for Technology Transfer 2(2), 192–201 (1998)

    Article  MATH  Google Scholar 

  19. Pnueli, A., Siegel, M., Shtrichman, O.: Translation validation for synchronous languages. In: Larsen, K.G., Skyum, S., Winskel, G. (eds.) ICALP 1998. LNCS, vol. 1443, pp. 235–246. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  20. Pnueli, A., Siegel, M., Shtrichman, O.: The code validation tool (CVT)- automatic verification of a compilation process. Software Tools for Technology Transfer, 2 (1999)

    Google Scholar 

  21. Rinard, M., Marinov, D.: Credible compilation with pointers. In: Proceedings of the Run-Time Result Verification Workshop, Trento (July 2000)

    Google Scholar 

  22. Robinson, J.A.: A machine-oriented logic based on the resolution principle. Journal of the ACM 12(1), 23–49 (1965)

    Article  MATH  Google Scholar 

  23. Stump, A., Barrett, C., Dill, D.: CVC: a Cooperating Validity Checker. In: 14th International Conference on Computer-Aided Verification (2002)

    Google Scholar 

  24. Stärk, R.F., Schmid, J., Börger, E.: Java and the Java Virtual Machine: Definition, Verification and Validation. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  25. Verilog. SCADE Language Reference Manual - Version 3.0 (January 1999)

    Google Scholar 

  26. Zimmermann, W., Gaul, T.: On the Construction of Correct Compiler Back-Ends: An ASM-Approach. j-jucs 3(5), 504–567 (1997)

    MATH  MathSciNet  Google Scholar 

  27. Zuck, L., Pnueli, A., Fang, Y., Goldberg, B.: VOC: a translation validator for optimizing compilers. In: Proc. of the workshop: Compiler Optimization Meets Compiler Verification (COCV 2002), Satellite of ETAPS 2002, Grenoble, April 2002, pp. 6–22 (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gordin, I., Leviathan, R., Pnueli, A. (2004). Validating the Translation of an Industrial Optimizing Compiler. In: Wang, F. (eds) Automated Technology for Verification and Analysis. ATVA 2004. Lecture Notes in Computer Science, vol 3299. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30476-0_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30476-0_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-23610-8

  • Online ISBN: 978-3-540-30476-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics