Skip to main content

Correctness proofs for META IV written code generator specifications using term rewriting

  • Conference paper
  • First Online:
  • 123 Accesses

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

Abstract

In recent years, computer scientists have become more and more convinced that verification is an important part of software development. We give an example for formal verification of "realistic" software: we show how to prove correctness of code generators that are developed within the compiler generating system CAT. Such code generators are large and involved programs specified in META IV. The proofs that are necessary become even larger and more involved, and to carry them out by hand seems to be an unfeasible task. Therefore automatic proof support is needed. We demonstrate that it is possible to give this support; we have written a proof support system which does essential parts of the proof. It is based on term rewriting and on specification by pre- and postconditions.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

9. References

  1. Bidoit, M., Choppy, C., "Asspegique: an Integrated Environment for Algebraic Specifications", in: Ehrig, H. et al. (eds.), Proceedings of the TAPSOFT '85 Conference, pp. 246–260, LNCS 186, Springer, 1985

    Google Scholar 

  2. Bjørner, D., Jones, C.B., The Vienna Development Method: The Meta-Language, LNCS 61, Springer, 1978

    Google Scholar 

  3. Boyer, R.S., Moore, J.S., A Computational Logic, Academic Press, 1979

    Google Scholar 

  4. Buth, K.H., Wenzel, B., Proving the Correctness of a Code Generator Specification Using Term Rewriting Techniques, Bericht Nr. 8719, Institut für Informatik und Praktische Mathematik, Christian-Albrechts-Universität Kiel, 1987

    Google Scholar 

  5. Despeyroux, J., "Proof of Translation in Natural Semantics", in: Proceedings Of The IEEE 1986 Symposium On Logic In Computer Science, pp. 193–205, IEEE Computer Society Press, Washington, D.C., 1986

    Google Scholar 

  6. Dybjer, D., "Using Domain Algebras to Prove the Correctness of a Compiler", in: Mehlhorn, K. (ed.), Proceedings of the STACS 1985, pp. 98–108, LNCS 182, Springer, 1985

    Google Scholar 

  7. Floyd, R.W., "Assigning meanings to programs", in: Schwartz, J.T. (ed.), Mathematical Aspects of Computer Science, pp. 19–32, Proceedings of Symposia in Applied Mathematics, 19, American Mathematical Society, Providence, R.I., 1967

    Google Scholar 

  8. Gerhart, S.L. et al., "An Overview of AFFIRM: a Specification and Verification System", in: Lavington, S. (ed.), Information Processing '80, pp. 343–347, North Holland, 1980

    Google Scholar 

  9. Hoare, C.A.R., "An Axiomatic Basis of Computer Programming", Communications of the ACM, 12 (10), pp. 576–583, 1969

    Article  Google Scholar 

  10. Huet, G., Oppen, D.C., "Equations and Rewrite Rules: A Survey", in: Book, R.V. (ed.), Formal Languages: Perspectives and Open Problems, pp. 349–405, Academic Press, New York, 1980

    Google Scholar 

  11. Kaplan, S., Simplifying Conditional Term Rewriting Systems, Report No. CS 86-08, Weizmann Institute of Science, Rehovot (Israel), 1986

    Google Scholar 

  12. Kaplan, S., "A Compiler for Conditional Term Rewriting Systems", in: Lescanne, P. (ed.), Proceedings of the Second International Conference on Rewriting Techniques and Applications, pp. 25–41, LNCS 256, Springer, 1987

    Google Scholar 

  13. Koch, J., Der 16bit-Mikroprozessor SC 68000: Befehlsvorrat, Boysen + Maasch, Hamburg, 1983

    Google Scholar 

  14. Lescanne, P., "Computer experiments with the REVE term rewriting system generator", in: Proceedings of the 10th ACM Symposium on Principles of Programming Languages, Austin, Texas, pp. 99–108, 1983

    Google Scholar 

  15. Lindsay, P.A., "A Survey of Mechanical Support for Formal Reasoning, Software Engineering Journal, 3 (1), pp. 3–27, Jan. 1988

    Google Scholar 

  16. Loeckx, J., Sieber, K., Stansifer, R.D., The Foundations of Program Verification, Teubner/Wiley, 1984

    Google Scholar 

  17. Manna, Z., Mathematical Theory of Computation, McGraw-Hill, New York, 1974

    Google Scholar 

  18. Milne, R., Strachey, C., A theory of programming language semantics, Chapman and Hall, London, 1976

    Google Scholar 

  19. Mosses, P.D., "A constructive approach to compiler correctness", in: de Bakker, J.W., van Leeuwen, J. (eds.), Proceedings of the ICALP 1980, pp. 449–462, LNCS 85, Springer, 1980

    Google Scholar 

  20. Nelson, G., Oppen, D.C., "Simplification by Cooperating Decision Procedures", ACM Transactions on Programming Languages and Systems, 1 (2), pp. 245–257, 1979

    Google Scholar 

  21. Nielson, F., Nielson, H.R., "Two-level semantics and code generation", Theoretical Computer Science, 56, pp. 59–133, 1988

    Google Scholar 

  22. Polak, W., Compiler Specification and Verification, LNCS 124, Springer, 1981

    Google Scholar 

  23. Schmidt, U.: Ein neuartiger, auf VDM basierender Code-generator-Generator, Dissertation, Christian-Albrechts-Universität Kiel, 1983

    Google Scholar 

  24. Schmidt, U., Völler, R., "A Multi-Language Compiler System with Automatically Generated Codegenerators", in: Proceedings of the SIGPLAN '84 Symposium on Compiler Construction, pp. 202–212, ACM SIGPLAN Notices, 19 (6), 1984

    Google Scholar 

  25. Schmidt, U., Völler, R., "Experience with VDM in Norsk Data", in: Bjørner, D. et al. (eds.): VDM — A Formal Method at Work, Proceedings of the VDM-Europe Symposium 1987, pp. 49–62, LNCS 252, Springer, 1987

    Google Scholar 

  26. Stoy, J.E., Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, MIT Press, 1977

    Google Scholar 

  27. Thatcher, J.W., Wagner, E.G., Wright, J.B., "More on advice on structuring compilers and proving them correct", Theoretical Computer Science, 15 (3), pp. 223–249, 1981

    Google Scholar 

  28. Völler, R., Entwicklung einer maschinenunabhängigen Zwischensprache und zugehöriger übersetzeroberteile für ein Mehrsprachenübersetzersystem mit Hilfe von VDM, Dissertation, Christian-Albrechts-Universität Kiel, 1983

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Robin E. Bloomfield Lynn S. Marshall Roger B. Jones

Rights and permissions

Reprints and permissions

Copyright information

© 1988 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bettina, Buth, KH. (1988). Correctness proofs for META IV written code generator specifications using term rewriting. In: Bloomfield, R.E., Marshall, L.S., Jones, R.B. (eds) VDM '88 VDM — The Way Ahead. VDM 1988. Lecture Notes in Computer Science, vol 328. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-50214-9_26

Download citation

  • DOI: https://doi.org/10.1007/3-540-50214-9_26

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-45955-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics