Migrating to an Extensible Architecture for Abstract Syntax Trees

被引:0
|
作者
Couto, Luis Diogo [1 ]
Tran-Jorgensen, Peter W. V. [1 ]
Coleman, Joey W. [1 ]
Lausdahl, Kenneth [1 ]
机构
[1] Aarhus Univ, Dept Engn, Finlandsgade 22, DK-8200 Aarhus N, Denmark
关键词
ORIENTED DESIGN METRICS;
D O I
10.1109/WICSA.2015.10
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present and analyse an architectural migration in the Overture tool, a tool for which the primary internal data structure is an Abstract Syntax Tree (AST). The migration was from a high-cohesion AST with functionality encapsulated in its nodes to an extensible, low-cohesion AST with functionality implemented in visitors. This was motivated by the need for a high degree of extensibility in the tool's core functionality. We describe the migration process and both architectures in detail. We also present a comparative analysis between both architectures, including the trade-offs made between extensibility and performance. Finally, we generalise these results to other tool migrations that have hierarchical data structures at their core.
引用
收藏
页码:145 / 154
页数:10
相关论文
共 50 条
  • [31] Cross-language clone detection by learning over abstract syntax trees
    Perez, Daniel
    Chiba, Shigeru
    IEEE International Working Conference on Mining Software Repositories, 2019, 2019-May : 518 - 528
  • [32] AST-Transformer: Encoding Abstract Syntax Trees Efficiently for Code Summarization
    Tang, Ze
    Li, Chuanyi
    Ge, Jidong
    Shen, Xiaoyu
    Zhu, Zheling
    Luo, Bin
    2021 36TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING ASE 2021, 2021, : 1193 - 1195
  • [33] Abstract syntax from concrete syntax
    Wile, DS
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 472 - 480
  • [34] Control-Flow-Only Abstract Syntax Trees for Analyzing Students' Programming Progress
    Hovemeyer, David
    Hellas, Arto
    Petersen, Andrew
    Spacco, Jaime
    PROCEEDINGS OF THE 2016 ACM CONFERENCE ON INTERNATIONAL COMPUTING EDUCATION RESEARCH (ICER'16), 2016, : 63 - 72
  • [35] PassSum: Leveraging paths of abstract syntax trees and self-supervision for code summarization
    Niu, Changan
    Li, Chuanyi
    Ng, Vincent
    Ge, Jidong
    Huang, Liguo
    Luo, Bin
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2023, 36 (06)
  • [36] fAST: regular expression inference from positive examples using Abstract Syntax Trees
    Raynal, Maxime
    Buob, Marc-Olivier
    Quenot, Georges
    INTERNATIONAL CONFERENCE ON GRAMMATICAL INFERENCE, VOL 217, 2023, 217 : 96 - 116
  • [37] CoCoAST: Representing Source Code via Hierarchical Splitting and Reconstruction of Abstract Syntax Trees
    Ensheng Shi
    Yanlin Wang
    Lun Du
    Hongyu Zhang
    Shi Han
    Dongmei Zhang
    Hongbin Sun
    Empirical Software Engineering, 2023, 28
  • [38] Learning-Based Recursive Aggregation of Abstract Syntax Trees for Code Clone Detection
    Buech, Lutz
    Andrzejak, Artur
    2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), 2019, : 95 - 104
  • [39] CoCoAST: Representing Source Code via Hierarchical Splitting and Reconstruction of Abstract Syntax Trees
    Shi, Ensheng
    Wang, Yanlin
    Du, Lun
    Zhang, Hongyu
    Han, Shi
    Zhang, Dongmei
    Sun, Hongbin
    EMPIRICAL SOFTWARE ENGINEERING, 2023, 28 (06)
  • [40] How does a program run? A visual model based on Annotating Abstract Syntax Trees
    Choppella, Venkatesh
    Ahuja, Garima
    Mavalankar, Aditi
    PROCEEDINGS OF 2016 INTERNATIONAL CONFERENCE ON LEARNING AND TEACHING IN COMPUTING AND ENGINEERING (LATICE 2016), 2016, : 38 - 42