Witnessing Program Transformations

被引:0
|
作者
Namjoshi, Kedar S. [1 ]
Zuck, Lenore D. [2 ]
机构
[1] Alcatel Lucent, Bell Labs, Paris, France
[2] Univ Illinois, Chicago, IL USA
来源
STATIC ANALYSIS, SAS 2013 | 2013年 / 7935卷
关键词
TRANSLATION VALIDATION; REFINEMENT; PROOFS;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We study two closely related problems: (a) showing that a program transformation is correct and (b) propagating an invariant through a program transformation. The second problem is motivated by an application which utilizes program invariants to improve the quality of compiler optimizations. We show that both problems can be addressed by augmenting a transformation with an auxiliary witness generation procedure. For every application of the transformation, the witness generator constructs a relation which guarantees the correctness of that instance. We show that stuttering simulation is a sound and complete witness format. Completeness means that, under mild conditions, every correct transformation induces a stuttering simulation witness which is strong enough to prove that the transformation is correct. A witness is self-contained, in that its correctness is independent of the optimization procedure which generates it. Any invariant of a source program can be turned into an invariant of the target of a transformation by suitably composing it with its witness. Stuttering simulations readily compose, forming a single witness for a sequence of transformations. Witness generation is simpler than a formal proof of correctness, and it is comprehensive, unlike the heuristics used for translation validation. We define witnesses for a number of standard compiler optimizations; this exercise shows that witness generators can be implemented quite easily.
引用
收藏
页码:304 / 323
页数:20
相关论文
共 50 条
  • [1] Witnessing Network Transformations
    Deng, Chaoqiang
    Namjoshi, Kedar S.
    RUNTIME VERIFICATION (RV 2017), 2017, 10548 : 155 - 171
  • [2] PROGRAM TRANSFORMATIONS
    BALZER, R
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1981, 7 (01) : 1 - 2
  • [3] ANNOTATED PROGRAM TRANSFORMATIONS
    KASYANOV, VN
    FOUNDATIONS OF SOFTWARE TECHNOLOGY AND THEORETICAL COMPUTER SCIENCE ////, 1989, 405 : 171 - 180
  • [4] ANNOTATED PROGRAM TRANSFORMATIONS
    KASYANOV, VN
    LECTURE NOTES IN COMPUTER SCIENCE, 1989, 405 : 171 - 180
  • [5] The Impact of Program Transformations on Static Program Analysis
    Namjoshi, Kedar S.
    Pavlinovic, Zvonimir
    STATIC ANALYSIS (SAS 2018), 2018, 11002 : 306 - 325
  • [6] Witnessing expert witnessing
    Ahern, Kevin
    BIOTECHNIQUES, 2007, 42 (01) : 23 - 23
  • [7] A SYNTACTIC APPROACH TO PROGRAM TRANSFORMATIONS
    ARIOLA, ZM
    ARVIND
    SIGPLAN NOTICES, 1991, 26 (09): : 116 - 129
  • [8] Program Transformations in the POLCA Project
    Kuper, Jan
    Schubert, Lutz
    Kempf, Kilian
    Glass, Colin
    Bonilla, Daniel Rubio
    Carro, Manuel
    PROCEEDINGS OF THE 2016 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION (DATE), 2016, : 882 - 887
  • [9] Program transformations for information personalization
    Perugini, Saverio
    Ramakrishnan, Naren
    COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2010, 36 (03) : 223 - 249
  • [10] Probabilistically Accurate Program Transformations
    Misailovic, Sasa
    Roy, Daniel M.
    Rinard, Martin C.
    STATIC ANALYSIS, 2011, 6887 : 316 - 333