Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/11609773_6guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

A compositional logic for control flow

Published: 08 January 2006 Publication History
  • Get Citation Alerts
  • Abstract

    We present a program logic, $\mathcal{L}_{c}$, which modularly reasons about unstructured control flow in machine-language programs. Unlike previous program logics, the basic reasoning units in $\mathcal{L}_{c}$ are multiple-entry and multiple-exit program fragments. $\mathcal{L}_{c}$ provides fine-grained composition rules to compose program fragments. It is not only useful for reasoning about unstructured control flow in machine languages, but also useful for deriving rules for common control-flow structures such as while-loops, repeat-until-loops, and many others. We also present a semantics for $\mathcal{L}_{c}$ and prove that the logic is both sound and complete with respect to the semantics. As an application, $\mathcal{L}_{c}$ and its semantics have been implemented on top of the $\mathcal{L}_{c}$ machine language, and are embedded in the Foundational Proof-Carrying Code project to produce memory-safety proofs for machine-language programs.

    References

    [1]
    Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the Association for Computing Machinery 12 (1969) 578-580.
    [2]
    Necula, G.: Proof-carrying code. In: 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New York, ACM Press (1997) 106-119.
    [3]
    Morrisett, G., Walker, D., Crary, K., Glew, N.: From System F to typed assembly language. ACM Trans. on Programming Languages and Systems 21 (1999) 527-568.
    [4]
    Appel, A.W.: Foundational proof-carrying code. In: Symposium on Logic in Computer Science (LICS '01), IEEE (2001) 247-258.
    [5]
    Clint, M., Hoare, C.A.R.: Program proving: Jumps and functions. Acta Informatica (1972) 214-224.
    [6]
    Kowaltowski, T.: Axiomatic approach to side effects and general jumps. Acta Informatica 7 (1977) 357-360.
    [7]
    Arbib, M., Alagic, S.: Proof rules for gotos. Acta Informatica 11 (1979) 139-148.
    [8]
    de Bruin, A.: Goto statements: Semantics and deduction systems. Acta Informatica 15 (1981) 385-424.
    [9]
    O'Donnell, M.J.: A critique of the foundations of hoare style programming logics. Communications of the Association for Computing Machinery 25 (1982) 927-935.
    [10]
    Floyd, R.W.: Assigning meanings to programs. In: Proceedings of Symposia in Applied Mathematics, Providence, Rhode Island (1967) 19-32.
    [11]
    Cardelli, L.: Program fragments, linking, and modularization. In: 24th ACM Symposium on Principles of Programming Languages. (1997) 266-277.
    [12]
    Glew, N., Morrisett, G.: Type-safe linking and modular assembly language. In: 26th ACM Symposium on Principles of Programming Languages. (1999) 250-261.
    [13]
    Benton, N.: A typed, compositional logic for a stack-based abstract machine. In: 3rd Asian Symposium on Programming Languages and Systems. (2005).
    [14]
    Ni, Z., Shao, Z.: Certified assembly programming with embedded code pointers. In: 33rd ACM Symposium on Principles of Programming Languages. (2006) To appear.
    [15]
    Saabas, A., Uustalu, T.: A compositional natural semantics and Hoare logic for lowlevel languages. In: Proceedings of the SecondWorkshop on Structured Operational Semantics (SOS'05). (2005).
    [16]
    Tan, G.: A Compositional Logic for Control Flow and its Application in Foundational Proof-Carrying Code. PhD thesis, Princeton University (2005).
    [17]
    Appel, A.W., McAllester, D.: An indexed model of recursive types for foundational proof-carrying code. ACM Trans. on Programming Languages and Systems 23 (2001) 657-683.
    [18]
    Tan, G., Appel, A.W., Swadi, K.N., Wu, D.: Construction of a semantic model for a typed assembly language. In: Fifth International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI 04). (2004) 30-43.
    [19]
    Sørensen, M.H., Urzyczyn, P.: Lectures on the Curry-Howard isomorphism. Available as DIKU Rapport 98/14 (1998).
    [20]
    Cook, S.A.: Soundness and completeness of an axiom system for program verification. SIAM Journal on Computing 7 (1978) 70-90.
    [21]
    Chen, J., Wu, D., Appel, A.W., Fang, H.: A provably sound TAL for back-end optimization. In: ACM Conference on Programming Language Design and Implementation. (2003) 208-219.
    [22]
    Swadi, K.N.: Typed Machine Language. PhD thesis, Princeton University (2003).

    Cited By

    View all
    • (2017)Equational Theories of Abnormal Termination Based on Kleene AlgebraProceedings of the 20th International Conference on Foundations of Software Science and Computation Structures - Volume 1020310.1007/978-3-662-54458-7_6(88-105)Online publication date: 22-Apr-2017
    • (2015)AUSPICERevised Selected Papers of the 7th International Conference on Verified Software: Theories, Tools, and Experiments - Volume 959310.1007/978-3-319-29613-5_12(202-222)Online publication date: 18-Jul-2015
    • (2013)Hoare-style reasoning with (algebraic) continuationsACM SIGPLAN Notices10.1145/2544174.250059348:9(363-376)Online publication date: 25-Sep-2013
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    VMCAI'06: Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
    January 2006
    443 pages
    ISBN:3540311394

    Sponsors

    • University of Texas at Austin: University of Texas at Austin
    • NEC Research Labs: NEC Research Labs
    • Microsoft Research: Microsoft Research

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 08 January 2006

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2017)Equational Theories of Abnormal Termination Based on Kleene AlgebraProceedings of the 20th International Conference on Foundations of Software Science and Computation Structures - Volume 1020310.1007/978-3-662-54458-7_6(88-105)Online publication date: 22-Apr-2017
    • (2015)AUSPICERevised Selected Papers of the 7th International Conference on Verified Software: Theories, Tools, and Experiments - Volume 959310.1007/978-3-319-29613-5_12(202-222)Online publication date: 18-Jul-2015
    • (2013)Hoare-style reasoning with (algebraic) continuationsACM SIGPLAN Notices10.1145/2544174.250059348:9(363-376)Online publication date: 25-Sep-2013
    • (2013)CoqProceedings of the 15th Symposium on Principles and Practice of Declarative Programming10.1145/2505879.2505897(13-24)Online publication date: 16-Sep-2013
    • (2013)Hoare-style reasoning with (algebraic) continuationsProceedings of the 18th ACM SIGPLAN international conference on Functional programming10.1145/2500365.2500593(363-376)Online publication date: 25-Sep-2013
    • (2013)High-level separation logic for low-level codeACM SIGPLAN Notices10.1145/2480359.242910548:1(301-314)Online publication date: 23-Jan-2013
    • (2013)High-level separation logic for low-level codeProceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/2429069.2429105(301-314)Online publication date: 23-Jan-2013
    • (2013)On construction of a library of formally verified low-level arithmetic functionsInnovations in Systems and Software Engineering10.1007/s11334-013-0195-x9:2(59-77)Online publication date: 1-Jun-2013
    • (2013)Proof PearlProceedings of the Third International Conference on Certified Programs and Proofs - Volume 830710.1007/978-3-319-03545-1_5(66-81)Online publication date: 11-Dec-2013
    • (2011)ARMorProceedings of the ninth ACM international conference on Embedded software10.1145/2038642.2038687(289-298)Online publication date: 9-Oct-2011
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media