Tool for Detecting Standardwise Differences in C plus plus Legacy Code

被引:0
|
作者
Brunner, Tibor [1 ]
Pataki, Norbert [1 ]
Porkolab, Zoltan [1 ]
机构
[1] Eotvos Lorand Univ, Dept Programming Languages & Compilers, Pazmany Peter Setany 1-C, H-1117 Budapest, Hungary
关键词
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Programming languages are continuously evolving as the experiences are accumulated, developers face new problems and other requirements such as increasing support for multi-threading is emerging. These changes are reflected in new language standards and compiler versions. Although these changes are carefully planned to keep reverse compatibility with previous versions to keep the syntax and the semantics of earlier written code, sometimes languages break this rule. In case of silent semantic changes, when the earlier written code is recompiled with the new version, this is especially harmful. The new C++11 standard introduced major changes in the core language. This changes are widely believed to be reverse compatible, i.e. a simple recompilation of earlier written code will keep the old semantics. Recently we found examples that the backward compatibility between language versions is broken. The previously written code compiled with a new C++ compiler may change the program behaviour without any compiler diagnostic message. In a large code base such issues are very hard to catch by manual inspection, therefore some automatic tool support is required for this purpose. In this paper we propose a tool support to detect such backward incompatibilities in C++. The basic idea is to parse the source code using different standards, and then compare the abstract syntax trees. We implemented a proof of concept prototype tool to demonstrate our idea based on the LLVM/Clang compiler infrastructure.
引用
收藏
页码:51 / 56
页数:6
相关论文
共 50 条
  • [31] Enforcing Techniques and Transformation of C/C plus plus Source Code to Heterogeneous Hardware
    Gyimesi, Gabor
    Ban, Denes
    Siket, Istvan
    Ferenc, Rudolf
    Brugnoni, Silvano
    Corbat, Thomas
    Sommerlad, Peter
    Suter, Toni
    2016 INT IEEE CONFERENCES ON UBIQUITOUS INTELLIGENCE & COMPUTING, ADVANCED & TRUSTED COMPUTING, SCALABLE COMPUTING AND COMMUNICATIONS, CLOUD AND BIG DATA COMPUTING, INTERNET OF PEOPLE, AND SMART WORLD CONGRESS (UIC/ATC/SCALCOM/CBDCOM/IOP/SMARTWORLD), 2016, : 1173 - 1180
  • [32] Techniques for Memory-Efficient Model Checking of C and C plus plus Code
    Rockai, Petr
    Still, Vladimir
    Barnat, Jiri
    SOFTWARE ENGINEERING AND FORMAL METHODS, 2015, 9276 : 268 - 282
  • [33] Nobrainer: An Example-Driven Framework for C/C plus plus Code Transformations
    Savchenko, Valeriy
    Sorokin, Konstantin
    Pankratenko, Georgiy
    Markov, Sergey
    Spiridonov, Alexander
    Alexandrov, Ilia
    Volkov, Alexander
    Sun, Kwangwon
    PERSPECTIVES OF SYSTEM INFORMATICS (PSI 2019), 2019, 11964 : 140 - 155
  • [34] From C/C plus plus Code to High-Performance Dataflow Circuits
    Josipovic, Lana
    Guerrieri, Andrea
    Ienne, Paolo
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2022, 41 (07) : 2142 - 2155
  • [35] Vulnerability Detection in C/C plus plus Source Code With Graph Representation Learning
    Wu, Yuelong
    Lu, Jintian
    Zhang, Yunyi
    Jin, Shuyuan
    2021 IEEE 11TH ANNUAL COMPUTING AND COMMUNICATION WORKSHOP AND CONFERENCE (CCWC), 2021, : 1519 - 1524
  • [36] Detection of Memory Leaks in C/C plus plus Code via Machine Learning
    Andrzejak, Artur
    Eichler, Felix
    Ghanavati, Mohammadreza
    2017 IEEE 28TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS (ISSREW 2017), 2017, : 252 - 258
  • [37] CoBOT: Static C/C plus plus Bug Detection in the Presence of Incomplete Code
    Gao, Qing
    Zhang, Shikun
    Chen, Xianglong
    Ma, Sen
    Shao, Sihao
    Sui, Yulei
    Zhao, Guoliang
    Ma, Luyao
    Ma, Xiao
    Duan, Fuyao
    Deng, Xiao
    2018 IEEE/ACM 26TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2018), 2018, : 385 - 388
  • [38] RADAR: A Tool for Debugging Regression Problems in C/C plus plus Software
    Pastore, Fabrizio
    Mariani, Leonardo
    Goffi, Alberto
    PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), 2013, : 1335 - 1338
  • [39] OBJECT PLUS NEW CASE TOOL CODE GENERATOR
    ROBERTSON, CC
    JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1990, 3 (03): : 81 - 82
  • [40] Fast analysis of source code in C and C plus
    Savitskii, V. O.
    Sidorov, D. V.
    PROGRAMMING AND COMPUTER SOFTWARE, 2013, 39 (01) : 49 - 55