A modular reasoning system using uninterpreted predicates for code reuse

被引:6
|
作者
Din, Crystal Chang [1 ]
Johnsen, Einar Broch [1 ]
Owe, Olaf [1 ]
Yu, Ingrid Chieh [1 ]
机构
[1] Univ Oslo, Dept Informat, POB 1080, N-0316 Oslo, Norway
关键词
Code reuse; Modular reasoning; Early reasoning; Uninterpreted predicates; Soundness; Completeness; FINE-GRAINED REUSE; PROOF SYSTEM; TRAITS; LOGIC; !text type='JAVA']JAVA[!/text;
D O I
10.1016/j.jlamp.2017.11.004
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
This paper proposes a modular proof system based on uninterpreted predicates. The proposed proof system allows modular reasoning about programs with an open-world assumption, which goes beyond behavioral subtyping. The proof system enables modular reasoning about languages with very flexible code reuse mechanisms, such as traits and deltas in the context of object-oriented programming. Whereas related work on incremental proof systems prove soundness in terms of internal consistency, this paper establishes both soundness and relative completeness of the proposed proof system by relating it to a standard proof system for a simple object-oriented language. The applicability of the approach is demonstrated on different code reuse mechanisms: unrestricted class inheritance, delta-oriented programming, and trait-based programming. (C) 2017 Elsevier Inc. All rights reserved.
引用
收藏
页码:82 / 102
页数:21
相关论文
共 50 条
  • [1] Inheritance: From code reuse to reasoning reuse
    Soundarajan, N
    Fridella, S
    [J]. FIFTH INTERNATIONAL CONFERENCE ON SOFTWARE REUSE - PROCEEDINGS, 1998, : 206 - 215
  • [2] Interpolating bit-vector formulas using uninterpreted predicates and Presburger arithmetic
    Backeman, Peter
    Rummer, Philipp
    Zeljic, Aleksandar
    [J]. FORMAL METHODS IN SYSTEM DESIGN, 2021, 57 (02) : 121 - 156
  • [3] Interpolating bit-vector formulas using uninterpreted predicates and Presburger arithmetic
    Peter Backeman
    Philipp Rümmer
    Aleksandar Zeljić
    [J]. Formal Methods in System Design, 2021, 57 : 121 - 156
  • [4] A Method for Expanding Predicates and Rules in Automated Geometry Reasoning System
    Rao, Yongsheng
    Xie, Lanxing
    Guan, Hao
    Li, Jing
    Zhou, Qixin
    [J]. MATHEMATICS, 2022, 10 (07)
  • [5] Marlin: Mitigating Code Reuse Attacks Using Code Randomization
    Gupta, Aditi
    Habibi, Javid
    Kirkpatrick, Michael S.
    Bertino, Elisa
    [J]. IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING, 2015, 12 (03) : 326 - 337
  • [6] DEMO reactor design using the new modular system code SYCOMORE
    Reux, C.
    Di Gallo, L.
    Imbeaux, F.
    Artaud, J. -F.
    Bernardi, P.
    Bucalossi, J.
    Ciraolo, G.
    Duchateau, J. -L.
    Fausser, C.
    Galassi, D.
    Hertout, P.
    Jaboulay, J. -C.
    Li-Puma, A.
    Saoutic, B.
    Zani, L.
    [J]. NUCLEAR FUSION, 2015, 55 (07)
  • [7] Defensing Code Reuse Attacks Using Live Code Randomization
    Zhang, Gui-Min
    Li, Qing-Bao
    Zeng, Guang-Yu
    Zhao, Yu-Tao
    [J]. Ruan Jian Xue Bao/Journal of Software, 2019, 30 (09): : 2772 - 2790
  • [8] A case-based reasoning system for software reuse
    Shubita, Ahmad F.
    Edais, Shadi M.
    [J]. International Journal of Applied Systemic Studies, 2020, 9 (01): : 31 - 44
  • [9] Using plausible reasoning in modular robots kinematics
    Pozna, Claudlu
    Precup, Radu-Emil
    [J]. INES 2008: 12TH INTERNATIONAL CONFERENCE ON INTELLIGENT ENGINEERING SYSTEMS, PROCEEDINGS, 2008, : 243 - 248
  • [10] USING AUTOMATED REASONING TECHNIQUES TO DETERMINE SOFTWARE REUSE
    JENG, JJ
    CHENG, BHC
    [J]. INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 1992, 2 (04) : 523 - 546