Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/800178.810136acmconferencesArticle/Chapter ViewAbstractPublication Pagesacm-national-conferenceConference Proceedingsconference-collections
Article
Free access

A brief account: Implementation and applications of a Pascal program verifier (Position Statement)

Published: 01 January 1978 Publication History
  • Get Citation Alerts
  • Abstract

    The Stanford Pascal verifier is an interactive program verification system. It automates much of the work necessary to analyze a program for consistency with its documentation, and to give a rigorous mathematical proof of such consistency or to pin-point areas of inconsistency. It has been shown to have applications as an aid to programming, and to have potential for development as a new and useful tool in the production of reliable software.
    This verifier is a prototype system. It has inadequacies and shortcomings. It is undergoing continuous improvement, and is expected to be used eventually in conjunction with other kinds of program analyzers. In this talk we shall describe the verifier and some of the results that have been obtained using it. We shall discuss some of the problems that still stand in the way of developing verifiers to a stage where they are part of the programmer's normal working environment.

    References

    [1]
    A. V. Aho, J. D. Ullman, The Theory of Parsing, Translation, and Compiling, Vol 1, Prentice Hall, Englewood Cliff, N.J., 1972.]]
    [2]
    W. W. Bledsoe, Splitting and reduction heuristics in automatic theorem proving, Artificial Intelligence, Vol. 2, 1971, 55-77.]]
    [3]
    Cartwright, R. and Oppen, D., "Unrestricted Procedure Calls in Hoare's Logic," Proceedings of the Fifth ACM Symposium on Principles of Programming Languages, ACM, New York (1987).]]
    [4]
    S. A. Cook, Axiomatic and interpretive semantics for an Algol fragment, Technical Report 79, University of Toronto, 1975.]]
    [5]
    R. L. Drysdale, A standard basis for automatic verification of sorting algorithms, Stanford A. I. Lab. Memo, Stanford University, forthcoming.]]
    [6]
    D. A. Fisher, Copying cyclic list structures in linear time using bounded workspace, CACM, 18, 5, May 1975, 251-252.]]
    [7]
    R. W. Floyd, Assigning meanings to programs, Proc. Symp. Appl. Math. Amer. Math. Soc., Vol 19, 1967, 19-32.]]
    [8]
    S. M. German, Automating Proofs of the Absence of Common Runtime Errors, Proceedings of the Fifth ACM Symposium on Principles of Programming Languages, ACM, New York, pp. 105-118, (1978).]]
    [9]
    F. W. v.Henke, and D. C. Luckham, A methodology for verifying programs, Proceedings of the International Conference on Reliable Software, Los Angeles, California, April 20-24, 1975, 156-164.]]
    [10]
    C. A. R. Hoare, Proof of a program: FIND, CACM, Vol. 14, 1971.]]
    [11]
    C. A. R. Hoare, An axiomatic basis for computer programming, CACM, Vol. 12, Oct. 1969, 576-580.]]
    [12]
    C. A. R., Hoare, and N. Wirth, An axiomatic definition of the programming language PASCAL, Acta informatica, Vol. 2, 1973, 335-355.]]
    [13]
    G. Huet, D. C. Luckham, and D. Oppen, Proving the absence of common runtime errors, Stanford A. I. Lab. Memo, Stanford University, forthcoming.]]
    [14]
    S. Igarashi, R. L. London, and D. C. Luckham, Automatic program verification I: Logical basis and its implementation, Acta informatica, Vol. 4, 1975, 145-182.]]
    [15]
    Jensen, K, and N. Wirth, Pascal User Manual and Report, second ed., Springer-Verlag, New York, 1975.]]
    [16]
    R. A. Karp, and D. C. Luckham, Verification of fairness in an implementation of monitors, Proceedings International Conference on Software Engineering, San Francisco, Oct. 1976, 40-46.]]
    [17]
    King and R. W. Floyd, Inperpretation oriented theorem prover over integers, Second ACM symposium on Theory of Comp., Massachusetts, 1970.]]
    [18]
    D. E. Knuth, The art of computer programming, Vol. 111 - Sorting and Searching, Addison Wesley, Reading, Mass. 1973.]]
    [19]
    Luckham, D. C. "Program Verification and Verification-Oriented Programming", Proc. IFIP Congress 77, pp. 783-793, North-Holland publishing Co., Amsterdam, Aug. 1977.]]
    [20]
    D. C. Luckham and N. Suzuki, Automatic program verification IV: Proof of termination within a weak logic of programs, AIM-269, Stanford Artificial Intelligence Project, Stanford University, 1975, Acta Informatica, 8, 1977, pp. 21-36.]]
    [21]
    D. C. Luckham and N. Suzuki, Verification oriented proof rules for arrays, records, and pointers, Stanford Artificial Intelligence Project Memo 278, Stanford University, April 1976.]]
    [22]
    Nelson, C. and Oppen, D., "Fast Decision Procedures based on Congruence Closure", Memo AIM-309, CS Report No. STAN-CS-77-646, Stanford University (1978); also, Proceedings of the 18th Annual IEEE Symposium on Foundations of Computer Science(1977).]]
    [23]
    Nelson, C. and Oppen, D., "Simplification by Cooperating Decision Procedures", AI Memo AIM-311, CS Report No. STAN-CS-78-652, Stanford University; also, Proceedings of the Fifth ACM Symposium on Principles of programming Languages, ACM, New York (1978).]]
    [24]
    Oppen, D., "Reasoning about Recursively Defined Data Structures", Proceedings of the Fifth ACM Symposium on principles of Programming Languages, ACM, New York (1978).]]
    [25]
    W. Polak, Verification of the In-Situ permutation program, Stanford A. I. Lab. Verification Project Report, forthcoming.]]
    [26]
    N. Suzuki, Verifying programs by algebraic and logical reduction, Proceedings of In'l. Conf. On Reliable Software, IEEE, Oct. 1975, 473-481.]]
    [27]
    N. Suzuki, Automatic verification of programs with complex data structures, Ph.D. Thesis, Computer Sci. Dept., Stanford University, 1976.]]
    [28]
    S. German, P. vHenke, R. Karp, D. Luckham, D. Oppen, W. Polak, W. scherlist, "User manual: Stanford Pascal Verifier", AI memo, Stanford University, forthcoming.]]

    Cited By

    View all
    • (2013)The SofTech Ada verification project5th Computers in Aerospace Conference10.2514/6.1985-6024Online publication date: 18-Feb-2013

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ACM '78: Proceedings of the 1978 annual conference - Volume 2
    January 1978
    990 pages
    ISBN:0897910001
    DOI:10.1145/800178
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 January 1978

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)21
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 06 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2013)The SofTech Ada verification project5th Computers in Aerospace Conference10.2514/6.1985-6024Online publication date: 18-Feb-2013

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media