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 条
  • [21] An Architectural Smells Detection Tool for C and C plus plus projects
    Biaggi, Andrea
    Fontana, Francesca Arcelli
    Roveda, Riccardo
    44TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA 2018), 2018, : 417 - 420
  • [22] Assessing and discovering parallelism in C plus plus code for heterogeneous platforms
    del Rio Astorga, David
    Sotomayor, Rafael
    Miguel Sanchez, Luis
    Garcia Blas, Javier
    Calderon, Alejandro
    Fernandez, Javier
    JOURNAL OF SUPERCOMPUTING, 2018, 74 (11): : 5674 - 5689
  • [23] A Code Generation Toolkit for C plus plus Web Services Development
    Ji, Xiangye
    Han, Jun
    Zhao, Yongwang
    2013 THIRD INTERNATIONAL CONFERENCE ON INTELLIGENT SYSTEM DESIGN AND ENGINEERING APPLICATIONS (ISDEA), 2013, : 17 - 21
  • [24] Performance portable Vlasov code with C plus plus parallel algorithm
    Asahi, Yuuichi
    Padioleau, Thomas
    Latu, Guillaume
    Bigot, Julien
    Grandgirard, Virginie
    Obrejan, Kevin
    2022 IEEE/ACM INTERNATIONAL WORKSHOP ON PERFORMANCE, PORTABILITY AND PRODUCTIVITY IN HPC (P3HPC), 2022, : 68 - 80
  • [25] Algorithmic Differentiation of a Complex C plus plus Code with Underlying Libraries
    Sagebaum, Max
    Gauger, Nicolas R.
    Naumann, Uwe
    Lotz, Johannes
    Leppkes, Klaus
    2013 INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE, 2013, 18 : 208 - 217
  • [26] Generation of C plus plus Code from Isabelle/HOL Specification
    Jiang, Dongchen
    Xu, Bo
    INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2022, 32 (07) : 1043 - 1069
  • [27] The Impact of Compiler Warnings on Code Quality in C plus plus Projects
    Johansson, Albin
    Holmberg, Carl
    Neto, Francisco G. de Oliveira
    Leitner, Philipp
    PROCEEDINGS 2024 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC 2024, 2024, : 270 - 279
  • [28] Visually Analyzing Students' Gaze on C plus plus Code Snippets
    Peterson, Cole S.
    Saddler, Jonathan A.
    Blascheck, Tanja
    Sharif, Bonita
    2019 IEEE/ACM 6TH INTERNATIONAL WORKSHOP ON EYE MOVEMENTS IN PROGRAMMING (EMIP 2019), 2019, : 18 - 25
  • [29] ReSYCLator: Transforming CUDA C plus plus source code into SYCL
    Stauber, Tobias
    Sommerlad, Peter
    PROCEEDINGS OF THE INTERNATIONAL WORKSHOP ON OPENCL (IWOCL'19), 2019,
  • [30] Extraction of State Transition Diagrams from Legacy C plus plus Application
    Moiz, Salman Abdul
    Basha, N. Md. Jubair
    2ND INTERNATIONAL CONFERENCE ON COMPUTER, COMMUNICATION, CONTROL AND INFORMATION TECHNOLOGY (C3IT-2012), 2012, 4 : 543 - 547