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 条
  • [1] GoCxx: a tool to easily leverage C plus plus legacy code for multicore-friendly Go libraries and frameworks
    Binet, Sebastien
    INTERNATIONAL CONFERENCE ON COMPUTING IN HIGH ENERGY AND NUCLEAR PHYSICS 2012 (CHEP2012), PTS 1-6, 2012, 396
  • [2] NOBRAINER: A Tool for Example-Based Transformation of C/C plus plus Code
    Savchenko, V. V.
    Sorokin, K. S.
    Bronshtein, I. E.
    Volkov, A. S.
    Kachanov, V. V.
    Pankratenko, G. A.
    Ermakov, M. K.
    Markov, S. I.
    Spiridonov, A. V.
    Aleksandrov, I. V.
    PROGRAMMING AND COMPUTER SOFTWARE, 2020, 46 (05) : 362 - 372
  • [3] A Tool for Translating sequential source code to parallel code written in C plus plus and OpenACC
    Alsubhi, K.
    Alsolami, F.
    Algarni, A.
    Albassam, E.
    Khemakhem, M.
    Eassa, F.
    Jambi, K.
    Ashraf, M. Usman
    2019 IEEE/ACS 16TH INTERNATIONAL CONFERENCE ON COMPUTER SYSTEMS AND APPLICATIONS (AICCSA 2019), 2019,
  • [4] Implementation of an Obfuscation Tool for C/C plus plus Source Code Protection on the XScale Architecture
    Cho, Seongje
    Chang, Hyeyoung
    Cho, Yookun
    SOFTWARE TECHNOLOGIES FOR EMBEDDED AND UBIQUITOUS SYSTEMS, PROCEEDINGS, 2008, 5287 : 406 - +
  • [5] Large-scale semi-automated migration of legacy C/C plus plus test code
    Schuts, Mathijs T. W.
    Aarssen, Rodin T. A.
    Tielemans, Paul M.
    Vinju, Jurgen J.
    SOFTWARE-PRACTICE & EXPERIENCE, 2022, 52 (07): : 1543 - 1580
  • [6] Bridging Excel and C/C plus plus Code
    Punuru, Janardhana R.
    Knopf, F. Carl
    COMPUTER APPLICATIONS IN ENGINEERING EDUCATION, 2008, 16 (04) : 289 - 304
  • [7] Analysis and Code Model Extraction for C/C plus plus Source Code
    Wagner, Christian
    Margaria, Tiziana
    Pagendarm, Hans-Georg
    2009 14TH IEEE INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS), 2009, : 110 - +
  • [8] Evaluating Software Metrics of Gaming Applications using Code Counter Tool for C and C plus plus (CCCC)
    Thirumalai, Chandrasegar
    Reddy, Abhiram P.
    Kishore, Jaswanth Y.
    2017 INTERNATIONAL CONFERENCE OF ELECTRONICS, COMMUNICATION AND AEROSPACE TECHNOLOGY (ICECA), VOL 2, 2017, : 180 - 184
  • [9] A C/C plus plus Code Vulnerability Dataset with Code Changes and CVE Summaries
    Fan, Jiahao
    Li, Yi
    Wang, Shaohua
    Nguyen, Tien N.
    2020 IEEE/ACM 17TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2020, : 508 - 512
  • [10] C plus plus EDSL for parallel code generation
    Berenyi, Daniel
    PROCEEDINGS 2015 8TH ROMANIA TIER 2 FEDERATION GRID, CLOUD & HIGH PERFORMANCE COMPUTING IN SCIENCE (RO-LCG), 2015,