Refinement and retrenchment for programming language data types

被引:1
|
作者
Beckert, B [1 ]
Schlager, S
机构
[1] Univ Koblenz Landau, Inst Comp Sci, D-56070 Koblenz, Germany
[2] Univ Karlsruhe, Inst Theoret Comp Sci, D-76128 Karlsruhe, Germany
关键词
software verification; formal specification; retrenchment refinement; !text type='Java']Java[!/text; UML/OCL; integer arithmetic;
D O I
10.1007/s00165-005-0073-x
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Refinement is a well-established and accepted technique for the systematic development of correct software systems. However, for the step from already refined specification to implementation, a correct refinement is often not possible because the data types used in the specification respectively the implementation language differ. In this paper, we discuss this problem and its consequences, using the integer data types of JAvA as an example, which do not correctly refine the mathematical integers Z. We present a solution, which can be seen as a generalisation of refinement and a variant of retrenchment. It has successfully been implemented as part of the KeY software verification system.
引用
收藏
页码:423 / 442
页数:20
相关论文
共 50 条
  • [1] Data types of DFL programming language
    Zhao, Xiaofang
    Fan, Hui
    Liu, Xiaohua
    FOURTH INTERNATIONAL CONFERENCE ON FUZZY SYSTEMS AND KNOWLEDGE DISCOVERY, VOL 1, PROCEEDINGS, 2007, : 116 - 120
  • [2] Synchronous Programming with Refinement Types
    Chen, Jiawei
    De Mendonca, Jose Luiz Vargas
    Ayele, Bereket Shimels
    Bekele, Bereket Ngussie
    Jalili, Shayan
    Sharma, Pranjal
    Wohlfeil, Nicholas
    Zhang, Yicheng
    Jeannin, Jean-Baptiste
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (ICFP):
  • [3] Programming Language Features for Refinement
    Koenig, Jason
    Leino, K. Rustan M.
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (209): : 87 - 106
  • [4] ABSTRACT DATA-TYPES IN ASSEMBLY LANGUAGE PROGRAMMING
    RUANE, LM
    SIGPLAN NOTICES, 1984, 19 (01): : 63 - 67
  • [5] ON THE IMPLEMENTATION OF ABSTRACT-DATA-TYPES BY PROGRAMMING LANGUAGE CONSTRUCTS
    POIGNE, A
    VOSS, J
    JOURNAL OF COMPUTER AND SYSTEM SCIENCES, 1987, 34 (2-3) : 340 - 376
  • [6] ON THE IMPLEMENTATION OF ABSTRACT DATA-TYPES BY PROGRAMMING LANGUAGE CONSTRUCTS
    POIGNE, A
    VOSS, J
    LECTURE NOTES IN COMPUTER SCIENCE, 1985, 185 : 388 - 402
  • [7] Retrenchment: An engineering variation on refinement
    Banach, R
    Poppleton, M
    B'98: RECENT ADVANCES IN THE DEVELOPMENT AND USE OF THE B METHOD, 1998, 1393 : 129 - 147
  • [8] Affine Refinement Types for Secure Distributed Programming
    Bugliesi, Michele
    Calzavara, Stefano
    Eigner, Fabienne
    Maffei, Matteo
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2015, 37 (04):
  • [9] Graded Refinement, Retrenchment, and Simulation
    Banach, Richard
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2023, 32 (02)
  • [10] Safe Stream-Based Programming with Refinement Types
    Stein, Benno
    Clapp, Lazaro
    Sridharan, Manu
    Chang, Bor-Yuh Evan
    PROCEEDINGS OF THE 2018 33RD IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMTED SOFTWARE ENGINEERING (ASE' 18), 2018, : 565 - 576