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

Program verification based on denotation semantics

Published: 26 January 1981 Publication History

Abstract

A theory of partial correctness proofs is formulated in Scott's logic computable junctions. This theory allows mechanical construction of verification condition solely on the basis of a denotational language definition. Extensionally these conditions, the resulting proofs, and the required program augmentation are similar to those of Hoare style proofs; conventional input, output, and invariant assertions in a first order assertion language are required. The theory applies to almost any sequential language defined by a continuation semantics; for example, there are no restrictions on aliasing or side-effects. Aspects of "static semantics",such as type and declaration constraints, which are expressed in the denotational definition are validated as part of the verification condition generation process.

References

[1]
{Cl77} Clarke, E. M.: Program Invariants as Fixed Points; Dept. of Computer Science, Duke University, CS---1977---5
[2]
{Di76} Dijkstra, E. W.: A Discipline of Programming; Prentice Hall, 1976
[3]
{Do76} Donshue, J. E.: Complementary Definitions, of Programming Language Semantics; Lecture Notes in Computer Science 42, Springer, 1976
[4]
{Fl67} Floyd, R. W.: Assigning Meaning to Programs; Proceedings of Symp. in Applied Mathematics 19 (1967)
[5]
{GM77} Gordon, M., Milner, R., Wadsworth, C.: Edinburgh LCF; Internal report, CSR-11-77, University of Edinburgh
[6]
{Ho69} Hoare, C. A. R.: An Axiomatic Basis of Computer Programming; CACM 12, Oct, pp 576-580 (1969)
[7]
{HL74} Hoare, C. A. R., Lauer, P. E: Consistent and Complementary Formal Theories of the Semantics of Programming Languages; Acta Informatica 3, pp135-154, (1974)
[8]
{IL75} Igarashi, S., London, R. L., Luckham, D. C.: Automatic Program Verification 1: Logical Basis and Its Implementation; Acta Informatica, Vol 4, pp 145-182 (1975)
[9]
{Li75} Ligler, G.: Surface Properties of Programming Language Constructs; in Proving and improving programs, G. Huet, G. Kahn (ed.), Arc-et,-Senans, 1975
[10]
{Ma71} Masurkiewics, A.: Proving Algorithms by Tail Functions; Information and Control, 18 (1971), pp220-226
[11]
{MS76} Milne, R., Strachey, C.: A theory of programming language semantics; Chapman and Hall, London 1976
[12]
{Mi77} Milne, R.: Transforming Predicate Transformers; IFIP working conference on formal description of programming concepts, Saint Andrews, 1977
[13]
{OC78} Oppen, D. C., Cartwright, R: Reasoning about recursively defined data structures; Proc. fifth ACM Symp. on Principles of Programming languages, 1978
[14]
{Pl76} Plotkin G.: A powerdomain construction.; SIAM Journal of Computing 5, 1976, 452-487.
[15]
{Pl78} Plotkin, G.: Tω as a Universal Domain; Journal of computer and system sciences 17, pp 209-236 (1978)
[16]
{Re74} Reynolds, J. C.: On the Relation between Direct and Continuation Semantics; Proc. 2nd Coll. on Automata, Languages and Programming, Saarbrücken, pp. 157 - 168, 1974
[17]
{Sc78} Schwarts, R. L.: An Axiomatics Semantic Definition of ALGOL 68; CS Dept, UCLA, UCLA-34-P214-75, Aug. 78
[18]
{Sc72} Scott, D.: Lattice Theory, Data Types, and Semantics; NYU Symp. on Formal Semantics, Prentice-Hall, New York (1972)
[19]
{SS71} Scott, D., Strachey, C.: Toward a Mathematical Semantics for Computer Languages; Tech. Monograph PRG-6, Programming Research Group, University of Oxford (1971)
[20]
{Sm78} Smyth M. B.: Power domains.; Journal of Computer and System Sciences 16, 1978, 23-36.
[21]
{St77} Stoy, J.: Denotational Semantics, --- The Scott-Strachey Approach to Language Theory; MIT Press, Cambridge (1977)
[22]
{SW74} Strachey, C., Wadsworth, C. P.: Continuations, a Mathematical Semantics for Handling Full Jumps; Technical Monograph PRG-11, Oxford University, 1974
[23]
{Te76} Tennent, R. D.: The Denotational Semantics of Programming Languages; CACM, 19 (1976) pp437-453
[24]
{Te77} Tennent, R. D.: A Denotational Definition of the Programming Language Pascal; Tech. Report 77-47, Queen's University, Kingston, Ontario (1977), revised 1978

Cited By

View all
  1. Program verification based on denotation semantics

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    POPL '81: Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 1981
    230 pages
    ISBN:089791029X
    DOI:10.1145/567532
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 26 January 1981

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    POPL '81 Paper Acceptance Rate 24 of 121 submissions, 20%;
    Overall Acceptance Rate 824 of 4,130 submissions, 20%

    Upcoming Conference

    POPL '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)29
    • Downloads (Last 6 weeks)7
    Reflects downloads up to 16 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2004)A survey of semantic description frameworks for programming languagesACM SIGPLAN Notices10.1145/981009.98101339:3(14-30)Online publication date: 1-Mar-2004
    • (1997)Dynamic Verification of C++ Generic AlgorithmsIEEE Transactions on Software Engineering10.1109/32.58852323:5(314-323)Online publication date: 1-May-1997
    • (1991)Literate programming on a team projectSoftware—Practice & Experience10.1002/spe.438021070321:7(677-683)Online publication date: 1-Jun-1991
    • (1990)Formal Verification of Ada ProgramsIEEE Transactions on Software Engineering10.1109/32.5879016:9(1058-1075)Online publication date: 1-Sep-1990
    • (1989)Developing formally verified Ada programsACM SIGSOFT Software Engineering Notes10.1145/75200.7523814:3(257-265)Online publication date: 1-Apr-1989
    • (1989)Developing formally verified Ada programsProceedings of the 5th international workshop on Software specification and design10.1145/75199.75238(257-265)Online publication date: 1-Apr-1989
    • (1989)Penelope: an Ada software assurance editorProceedings of the Fourth Annual Conference on Computer Assurance, 'Systems Integrity, Software Safety and Process Security10.1109/CMPASS.1989.76050(119-127)Online publication date: 1989

    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