Safe modification of pointer programs in refinement calculus

被引:0
|
作者
Nishimura, Susumu [1 ]
机构
[1] Kyoto Univ, Grad Sch Sci, Dept Math, Sakyo Ku, Kyoto 6068502, Japan
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper discusses stepwise refinement of pointer programs in the framework of refinement calculus. We augment the underlying logic with formulas of separation logic and then introduce a pair of new predicate transformers, called separating assertion and separating assumption. The new predicate transformers are derived from separating conjunction and separating implication, which are fundamental logical connectives in separation logic. They represent primitive forms of heap allocation/deallocation operators and the basic pointer statements can be specified by means of them. We derive several refinement laws that are useful for stepwise refinement and demonstrate the use of the laws in the context of correctness preserving transformations that are intended for improved memory usage. The formal development is carried out in the framework of higher-order logic and is based on Back and Preoteasa's axiomatization of state space and its extension to the heap storage [BP05, Pre06]. All the results have been implemented and verified in the theorem prover PVS.
引用
收藏
页码:284 / 304
页数:21
相关论文
共 50 条
  • [21] A refinement calculus for tuple spaces
    Semini, L
    Montangero, C
    SCIENCE OF COMPUTER PROGRAMMING, 1999, 34 (02) : 79 - 140
  • [22] Pointer and escape analysis for multithreaded programs
    Salcianu, A
    Rinard, M
    ACM SIGPLAN NOTICES, 2001, 36 (07) : 12 - 23
  • [23] Pointer analysis of multithreaded Java programs
    Nanda, Mangala Gowri
    Ramesh, S.
    Proc ACM Symp Appl Computing, 1600, (1068-1075):
  • [24] Pointer analysis for programs with structures and casting
    Yong, SH
    Horwitz, S
    Reps, T
    ACM SIGPLAN NOTICES, 1999, 34 (05) : 91 - 103
  • [25] Probabilistic pointer analysis for multithreaded programs
    El-Zawawy, Mohamed A.
    SCIENCEASIA, 2011, 37 (04): : 344 - 354
  • [26] Pointer analysis for structured parallel programs
    Rugina, R
    Rinard, MC
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2003, 25 (01): : 70 - 116
  • [27] Function Pointer Eliminator for C Programs
    Kimura, Daisuke
    Al Ameen, Mahmudul Faisal
    Tatsuta, Makoto
    Nakazawa, Koji
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2021, 2021, 13008 : 23 - 37
  • [28] Procedure compilation in the refinement calculus
    Lermer, K.
    Fidge, C. J.
    FORMAL ASPECTS OF COMPUTING, 2006, 18 (02) : 152 - 180
  • [29] A Refinement Calculus for Hybrid Systems
    Gu, Bin
    Zou, Liang
    2014 19TH INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS 2014), 2014, : 176 - 185
  • [30] TYPES AND INVARIANTS IN THE REFINEMENT CALCULUS
    MORGAN, C
    VICKERS, T
    SCIENCE OF COMPUTER PROGRAMMING, 1990, 14 (2-3) : 281 - 304