Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Abstraction and verification in Alphard: defining and specifying iteration and generators

Published: 01 August 1977 Publication History
  • Get Citation Alerts
  • Abstract

    The Alphard “form” provides the programmer with a great deal of control over the implementation of abstract data types. In this paper the abstraction techniques are extended from simple data representation and function definition to the iteration statement, the most important point of interaction between data and the control structure of the language itself. A means of specializing Alphard's loops to operate on abstract entities without explicit dependence on the representation of those entities is introduced. Specification and verification techniques that allow the properties of the generators for such iterations to be expressed in the form of proof rules are developed. Results are obtained that for common special cases of these loops are essentially identical to the corresponding constructs in other languages. A means of showing that a generator will terminate is also provided.

    References

    [1]
    Dahl, O.-J., and Hoare, C.A.R. Hierarchical program structures. In Structured Programming, O.-J. Dahl, E.W. Dijkstra, and C.A.R. Hoare, Academic Press, New York, 1972, pp. 175-220.]]
    [2]
    Hoare, C.A.R. A note on the for statement. BIT 12 (1972), 334-341.]]
    [3]
    Hoare, C.A.R. Proof of correctness of data representations. Acta lnformatica 1,4 (1972), 271-281.]]
    [4]
    Hoare, C.A.R., and Wirth, N. An axiomatic definition of the programming language Pascal. Acta lnformatica 2,4 (1973), 335- 355.]]
    [5]
    Igarashi, S., London, R.L., and Luckham, D.C. Automatic program verification I: a logical basis and its implementation. Acta lnformatica 4, 2 (1975), 145-182.]]
    [6]
    Jensen, K., and Wirth, N. PASCAL User Manualand Report. Lecture Notes in Computer Science, No. 18, Springer-Verlag, 1974.]]
    [7]
    Katz, S., and Manna, Z. A closer look at termination. Acta Informatica 5, 4 (1975), 333-352.]]
    [8]
    London, R.L., Shaw, M., and Wulf, W.A. Abstraction and verification in Alphard: a symbol table example. Tech. Reports, Inform. Sci. Inst., U. of Southern California, Marina del Rey, Calif., and Carnegie-Mellon U., Pittsburgh, Pa., 1976.]]
    [9]
    Luckham, D.C., and Suzuki, N. Automatic program verification IV: Proof of termination within a weak logic of programs. Memo AIM-269, Stanford University, Stanford, Calif., Oct. 1975.]]
    [10]
    McCarthy, J., Abrahams, P.W., Edwards, D.J., Hart, T.P., and Levin, M.I. LISP 1.5 Programmer's Manual. MIT Press, 1962.]]
    [11]
    Newell, A., Tonge, F., Feigenbaum, E.A., Green, B .F. Jr., and Mealy, G.H. Information Processing Language-V Manual. Prentice- Hall, Englewood Cliffs, N.J., Sec. Ed. 1964.]]
    [12]
    Shaw, M. Abstraction and verification in Alphard: design and verification of a tree handler. Proc. Fifth Texas Conf. on Computing Systems, 1976, pp. 86-94.]]
    [13]
    Shaw, M., Wulf, W.A., and London, R.L. Abstraction and verification in Alphard: Iteration and generators. Tech. Reports, Inform. Sci. Inst., U. of Southern California, Marina del Rey, Calif., and Carnegie-Mellon U., Pittsburgh, Pa., 1976.]]
    [14]
    Teitelman, W. Interlisp Reference Manual. Xerox Palo Alto Res. Ctr., Palo Alto, Calif., 1975.]]
    [15]
    Weissman, C. LISP 1.5 Primer, Dickenson, Encino, Calif., 1967.]]
    [16]
    Wulf, W.A., London, R.L., and Shaw, M. Abstraction and verification in Alphard: Introduction to language and methodology. Tech. Reports, Inform. Sci. Inst., U. of Southern California, Marina del Rey, Calif., and Carnegie-Mellon U., Pittsburgh, Pa., 1976.]]
    [17]
    Wulf, W.A., London, R.L., and Shaw, M. An introduction to the construction and verification of Alphard programs. 1EEE Trans. on Software Eng. SE-2, 4 (Dec. 1976), 253-265.]]

    Cited By

    View all
    • (2017)Stream fusion, to completenessACM SIGPLAN Notices10.1145/3093333.300988052:1(285-299)Online publication date: 1-Jan-2017
    • (2017)Stream fusion, to completenessProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009880(285-299)Online publication date: 1-Jan-2017
    • (2017)Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming LanguagesundefinedOnline publication date: 1-Jan-2017
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Communications of the ACM
    Communications of the ACM  Volume 20, Issue 8
    Aug. 1977
    74 pages
    ISSN:0001-0782
    EISSN:1557-7317
    DOI:10.1145/359763
    Issue’s Table of Contents
    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 August 1977
    Published in CACM Volume 20, Issue 8

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. abstraction and representation
    2. abstraction data types
    3. assertions
    4. control specialization
    5. correctness
    6. generators
    7. invariants
    8. iteration statements
    9. modular decomposition
    10. program specifications
    11. programming languages
    12. programming methodology
    13. proofs of correctness
    14. types
    15. verification

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)67
    • Downloads (Last 6 weeks)12
    Reflects downloads up to 09 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2017)Stream fusion, to completenessACM SIGPLAN Notices10.1145/3093333.300988052:1(285-299)Online publication date: 1-Jan-2017
    • (2017)Stream fusion, to completenessProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009880(285-299)Online publication date: 1-Jan-2017
    • (2017)Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming LanguagesundefinedOnline publication date: 1-Jan-2017
    • (2016)Parallel type-checking with haskell using saturating LVars and stream generatorsACM SIGPLAN Notices10.1145/3016078.285114251:8(1-12)Online publication date: 27-Feb-2016
    • (2016)Parallel type-checking with haskell using saturating LVars and stream generatorsProceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/2851141.2851142(1-12)Online publication date: 27-Feb-2016
    • (2016)An Aid For The Selection Of Efficient Storage StructuresINFOR: Information Systems and Operational Research10.1080/03155986.1983.1173189921:3(206-229)Online publication date: 25-May-2016
    • (2014)Specification of generic APIs, orACM SIGAda Ada Letters10.1145/2692956.266318334:3(71-80)Online publication date: 18-Oct-2014
    • (2014)Specification of generic APIs, orProceedings of the 2014 ACM SIGAda annual conference on High integrity language technology10.1145/2663171.2663183(71-80)Online publication date: 18-Oct-2014
    • (2012)Lazy v. Yield: Incremental, Linear Pretty-PrintingProgramming Languages and Systems10.1007/978-3-642-35182-2_14(190-206)Online publication date: 2012
    • (2012)IterateesProceedings of the 11th international conference on Functional and Logic Programming10.1007/978-3-642-29822-6_15(166-181)Online publication date: 23-May-2012
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media