Verified Software Units

被引:3
|
作者
Beringer, Lennart [1 ]
机构
[1] Princeton Univ, Princeton, NJ 08544 USA
基金
美国国家科学基金会;
关键词
Verified Software Unit; Abstract Predicate Declaration; Residual Predicate; Positive Subtyping; Verified Software Toolchain; ABSTRACTION; VERIFICATION; INVARIANTS;
D O I
10.1007/978-3-030-72019-3_5
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Modularity - the partitioning of software into units of functionality that interact with each other via interfaces - has been the mainstay of software development for half a century. In case of the C language, the main mechanism for modularity is the compilation unit / header file abstraction. This paper complements programmatic modularity for C with modularity idioms for specification and verification in the context of Verifiable C, an expressive separation logic for CompCert Clight. Technical innovations include (i) abstract predicate declarations - existential packages that combine Parkinson & Bierman's abstract predicates with their client-visible reasoning principles; (ii) residual predicates, which help enforcing data abstraction in callback-rich code; and (iii) an application to pure (Smalltalk-style) objects that connects code verification to model-level reasoning about features such as subtyping, self, inheritance, and late binding. We introduce our techniques using concrete example modules that have all been verified using the Coq proof assistant and combine to fully linked verified programs using a novel, abstraction-respecting component composition rule for Verifiable C.
引用
收藏
页码:118 / 147
页数:30
相关论文
共 50 条
  • [1] TOTALLY VERIFIED SYSTEMS - LINKING VERIFIED SOFTWARE TO VERIFIED HARDWARE
    JOYCE, JJ
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1990, 408 : 177 - 201
  • [2] Maintaining Verified Software
    Leslie-Hurd, Joe
    [J]. ACM SIGPLAN NOTICES, 2013, 48 (12) : 71 - 80
  • [3] Verified Software Toolchain
    Appel, Andrew W.
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, 2011, 6602 : 1 - 17
  • [4] Maintaining verified software
    Leslie-Hurd, Joe
    [J]. ACM SIGPLAN Notices, 2014, 48 (12): : 71 - 80
  • [5] Is the Concept of Photosynthetic Units Verified?
    Zeinalov, Yuzeir
    [J]. ZEITSCHRIFT FUR NATURFORSCHUNG SECTION C-A JOURNAL OF BIOSCIENCES, 2009, 64 (7-8): : 459 - 475
  • [6] Verified software grand challenge
    Woodcock, Jim
    [J]. FM 2006: FORMAL METHODS, PROCEEDINGS, 2006, 4085 : 617 - 617
  • [7] The Verified Software Initiative: A Manifesto
    Hoare, C. A. R.
    Misra, Jayadev
    Leavens, Gary T.
    Shankar, Natarajan
    [J]. ACM COMPUTING SURVEYS, 2009, 41 (04)
  • [8] Verified software: A grand challenge
    Jones, C
    O'Hearn, P
    Woodcock, J
    [J]. COMPUTER, 2006, 39 (04) : 93 - 95
  • [9] Verified trustworthy software systems
    Gardner, Philippa
    [J]. PHILOSOPHICAL TRANSACTIONS OF THE ROYAL SOCIETY A-MATHEMATICAL PHYSICAL AND ENGINEERING SCIENCES, 2017, 375 (2104):
  • [10] What use is verified software?
    Rushby, John
    [J]. 12TH IEEE INTERNATIONAL CONFERENCE ON ENGINEERING COMPLEX COMPUTER SYSTEMS, PROCEEDINGS, 2007, : 270 - 276