Skip to main content

Contribution to Goodenough's and Gerhart's theory of software testing and verification: Relation between strong compiler test and compiler implementation verification

  • Chapter
  • First Online:
Book cover Foundations of Computer Science

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

Abstract

In view of J. B. Goodenough's and S. L. Gerhart's theory compiler πtS shows up to be a very well selected test datum to do translator implementation verification for πT supported by testing.

A posteriori verification of generated machine code as demanded by BSI in each program case relevant for safety critical applications should and can be made redundant. It suffices to do such a posteriori verification for initial compilers only.

For translator implementation verification we have used and refunctioned a real life system, host processor H0M plus S0 → H0-translator π tH0 , as a proof assistant. We print and iuxtapose intermediate translators which represent formal proof trees understandable by usual programmers. No special formal logics are necessary as existing theorem provers require.

We create complete enough and readable proof documentations not only for translation verification but also for translator implementation verification. Our technique allows to put the finger on the wound of any compiler failure in translation specification as well as in translator implementation. Even for full compiler correctness only a reduced set of low level code must be double checked. Our proceeding is in accordance with A. Robinson's [Rob96] statements on formal and informal proof: Informatics should try to mechanise proof techniques of mathematicians. Their informal proofs are guided by good ideas. That is more effectful than pursuing swollen formal proof protocols in predicate logics.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F.L. Bauer, editor. Software Engineering: An Advanced Course. LNCS, 30. Springer-Verlag, 1975.

    Google Scholar 

  2. J. Bowen, C.A.R. Hoare, H. Langmaack, E.-R. Olderog, and A.P. Ravn. A ProCoS II Project Final Report: ESPRIT Basic Reserach Project 7071. EATCS-Bulletin, 59:76–99, 1996.

    Google Scholar 

  3. BSI-Bundesamt für Sicherheit in der Informationstechnik. BSI-Zertifizierung. BSI 7119, Bonn, 1994.

    Google Scholar 

  4. L.M. Chirica and D.F. Martin. Toward Compiler Implementation Correctness Proofs. ACM Transactions on Programming Languages and Systems, 8(2): 185–214, April 1986.

    Article  Google Scholar 

  5. K. Engelhardt. Model-Oriented Data Refinement. PhD thesis, Univ.Kiel, 1997.

    Google Scholar 

  6. W. Goerigk, A. Dold, T. Gaul, G. Goos, A. Heberle, F.W. von Henke, U. Hoffmann, H. Langmaack, H. Pfeifer, H. Ruess, and W. Zimmermann. Compiler Correctness and Implementation Verification: The Verifix Approach. In CC '96 Int. Conf. on Compiler Construction (poster session), LinkØping, Sweden, 1996.

    Google Scholar 

  7. J.B. Goodenough and S.L. Gerhart. Toward a Theory of Test Data Selection. IEEE Transactions on Software Engineering, 1(2):156–173, June 1975.

    MathSciNet  Google Scholar 

  8. C.B. Jones. Systematic Software Development Using VDM, 2nd ed. Prentice Hall, New York, London, 1990.

    Google Scholar 

  9. H. Langmaack. Softwareengineering zur Zertifizierung von Systemen: Spezifikations-, Implementierungs-, übersetzerkorrektheit. it+ti-Informationstechnik und Technische Informatik, 39 (3), 41–47, 1997.

    Google Scholar 

  10. H. Langmaack. Theoretische Informatik ist Grundlage für das sichere Beherrschen realistischer Software und Systeme. In K. Brunnstein and H. Oberquelle, editors, 25 Jahre Informatik an der Universität Hamburg, Informatik: Stand, Trends, Visionen, Ber. FBI-HH-B-195/97, pages 47–62. Univ. Hamburg, 1997.

    Google Scholar 

  11. R. Milner. Communication and Concurrency. Prentice Hall, 1989.

    Google Scholar 

  12. M. Müller-Olm. Modular Compiler Verification. Dissertation, Univ.Kiel, 1996. Will be published as vol. 1283 of LNCS, Springer-Verlag, 1997.

    Google Scholar 

  13. J.S. Moore. Piton: A verified assembly level language. Technical Report 22, Comp. Logic Inc, Austin, Texas, 1988.

    Google Scholar 

  14. J.S. Moore. Piton, A Mechanically Verified Assembly-Level Language. Kluwer Academic Publishers, 1996.

    Google Scholar 

  15. S. Owre, J. M. Rushby, and N. Shankar. PVS: A Prototype Verification System. In Deepak Kapur, editor, Proceedings 11th International Conference on Automated Deduction CADE, volume 607 of Lecture Notes in Artificial Intelligence, pages 748–752, Saratoga, NY, October 1992. Springer-Verlag.

    Google Scholar 

  16. G.D. Plotkin. A Structural Approach to Operationale Semantics. DAIMI-FN19, Aarhus University, 1981.

    Google Scholar 

  17. E. Pofahl. Methods Used for Inspecting Safety Relevant Software. In W. J. Cullyer, W. A. Halang. B.J. Krämer (eds.): High Integrity Programmable Electronic Systems, Dagstuhl-Sem.-Rep. 107, p 13, 1995.

    Google Scholar 

  18. W. Polak. Compiler specification and verification. Number 124 in LNCS. 1981.

    Google Scholar 

  19. A. Robinson. Formal and Informal Proof. Lecture, Colloquium, DFG-Schwerpunktprogramm “Deduktion”, Dagstuhl, January 1996.

    Google Scholar 

  20. D. S. Scott. Domains for Denotational Semantics. In M. Nielsen and E. M. Schmidt, editors, Int. Coll. on Automata, Languages and Programs, number 140 in LNCS, pages 577–613, 1982.

    Google Scholar 

  21. G.L. Steele. Common Lisp: The Language. Digital Press, Bedford, MA, 1984.

    Google Scholar 

  22. M. Tofte. Compiler Generators. EATCS Monographs on Theoretical Computer Science, Springer-Verlag, 1997.

    Google Scholar 

  23. A. van Wijngaarden (ed.). Report on the Algorithmic Language ALGOL68. Numerische Mathematik, 14:79–218, 1969.

    Google Scholar 

  24. N. Wirth. Compilerbau. Teubner, 1977.

    Google Scholar 

  25. W.D. Young. A Verified Code Generator for a Subset of Gypsy. Technical Report 33, Comp. Logic. Inc., Austin, Texas, 1988.

    Google Scholar 

  26. ZSI-Zentralstelle für Sicherheit in der Informationstechnik. IT-Sicherheitskriterien. Bundesanzeiger Verlagsgesellschaft, Köln, 1989.

    Google Scholar 

  27. ZSI-Zentralstelle für Sicherheit in der Informationstechnik. IT-Evaluationshandbuch. Bundesanzeiger Verlagsgesellschaft, Köln, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Christian Freksa Matthias Jantzen Rüdiger Valk

Additional information

Dedicated to Prof. Dr. Dr. h. c. Wilfried Brauer, Technical University Munich, on occasion of his 60th birthday on the 8th of August, 1997.

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Langmaack, H. (1997). Contribution to Goodenough's and Gerhart's theory of software testing and verification: Relation between strong compiler test and compiler implementation verification. In: Freksa, C., Jantzen, M., Valk, R. (eds) Foundations of Computer Science. Lecture Notes in Computer Science, vol 1337. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0052101

Download citation

  • DOI: https://doi.org/10.1007/BFb0052101

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63746-2

  • Online ISBN: 978-3-540-69640-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics