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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
9. References
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
Bjørner, D., Jones, C.B., The Vienna Development Method: The Meta-Language, LNCS 61, Springer, 1978
Boyer, R.S., Moore, J.S., A Computational Logic, Academic Press, 1979
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
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
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
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
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
Hoare, C.A.R., "An Axiomatic Basis of Computer Programming", Communications of the ACM, 12 (10), pp. 576–583, 1969
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
Kaplan, S., Simplifying Conditional Term Rewriting Systems, Report No. CS 86-08, Weizmann Institute of Science, Rehovot (Israel), 1986
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
Koch, J., Der 16bit-Mikroprozessor SC 68000: Befehlsvorrat, Boysen + Maasch, Hamburg, 1983
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
Lindsay, P.A., "A Survey of Mechanical Support for Formal Reasoning, Software Engineering Journal, 3 (1), pp. 3–27, Jan. 1988
Loeckx, J., Sieber, K., Stansifer, R.D., The Foundations of Program Verification, Teubner/Wiley, 1984
Manna, Z., Mathematical Theory of Computation, McGraw-Hill, New York, 1974
Milne, R., Strachey, C., A theory of programming language semantics, Chapman and Hall, London, 1976
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
Nelson, G., Oppen, D.C., "Simplification by Cooperating Decision Procedures", ACM Transactions on Programming Languages and Systems, 1 (2), pp. 245–257, 1979
Nielson, F., Nielson, H.R., "Two-level semantics and code generation", Theoretical Computer Science, 56, pp. 59–133, 1988
Polak, W., Compiler Specification and Verification, LNCS 124, Springer, 1981
Schmidt, U.: Ein neuartiger, auf VDM basierender Code-generator-Generator, Dissertation, Christian-Albrechts-Universität Kiel, 1983
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
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
Stoy, J.E., Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, MIT Press, 1977
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
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
Author information
Authors and Affiliations
Editor information
Rights 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