Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3477314.3506962acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
poster
Public Access

On language-agnostic abstract-syntax trees: student research abstract

Published: 06 May 2022 Publication History

Abstract

As modern software systems have grown in complexity and heterogeneity, static code analysis of these systems has become more difficult. Due to increasing heterogeneity of software systems and static analysis tools being language specific, multiple of these tools are typically required to fully analyze these systems. Due to this, current tools for static code analysis are no longer well-suited to analyzing these modern systems. This paper presents an approach to solving the problem of needing multiple language-specific static analysis tools to fully perform static code analysis of such systems. This can be done by converting the software system's source code into an intermediate representation or abstraction known as a Langage-Agnostic Abstract-Syntax Tree. This abstraction provides a common interface for static analysis tools to operate with, no longer requiring the usage of multiple language-specific static analysis tools for a given heterogeneous system. The methodology for creating such an abstraction is presented here, along with an evaluation of two microservice system testbeds, DeathStarBench and TrainTicket, written in C++ and Java, respectively. By utilizing a higher abstraction for source code representations, we are much better prepared to perform static code analysis of modern software systems.

References

[1]
[n. d.]. Project Lombok. https://projectlombok.org/ (Accessed on 08/28/2021).
[2]
[n. d.]. Prophet: code representation in graph database. https://github.com/cloudhubs/prophet (Accessed on 08/28/2021).
[3]
2017. ISO/IEC/IEEE International Standard - Systems and software engineering-Vocabulary. ISO/IEC/IEEE 24765:2017(E) (2017), 1--541.
[4]
Luca Ardito, Luca Barbato, Marco Castelluccio, Riccardo Coppola, Calixte Denizet, Sylvestre Ledru, and Michele Valsesia. 2020. rust-code-analysis: A Rust library to analyze and extract maintainability information from source codes. SoftwareX 12 (2020), 100635.
[5]
I.D. Baxter, A. Yahin, L. Moura, M. Sant'Anna, and L. Bier. 1998. Clone detection using abstract syntax trees. In Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272). 368--377.
[6]
João M.P. Cardoso, Tiago Carvalho, José G.F. Coutinho, Wayne Luk, Ricardo Nobre, Pedro Diniz, and Zlatko Petrov. 2012. LARA: An Aspect-Oriented Programming Language for Embedded Systems. In Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development (AOSD '12). Association for Computing Machinery, New York, NY, USA, 179--190.
[7]
Tomas Cerny, Michael J. Donahoo, and Michal Trnka. 2018. Contextual Understanding of Microservice Architecture: Current and Future Directions. SIGAPP Appl. Comput. Rev. 17, 4 (Jan. 2018), 29--45.
[8]
Tomas Cerny, Jan Svacina, Dipta Das, Vincent Bushong, Miroslav Bures, Pavel Tisnovsky, Karel Frajtak, Dongwan Shin, and Jun Huang. 2020. On Code Analysis Opportunities and Challenges for Enterprise Systems and Microservices. IEEE Access (2020), 1--22.
[9]
M. E. Fagan. 1976. Design and code inspections to reduce errors in program development. IBM Systems Journal 15, 3 (1976), 182--211.
[10]
FudanSELab. 2021. Train Ticket - A Benchmark Microservice System. Retrieved March 27, 2021 from https://github.com/FudanSELab/train-ticket
[11]
Yu Gan, Yanqi Zhang, Dailun Cheng, Ankitha Shetty, Priyal Rathi, Nayan Katarki, Ariana Bruno, Justin Hu, Brian Ritchken, Brendon Jackson, Kelvin Hu, Meghna Pancholi, Yuan He, Brett Clancy, Chris Colen, Fukang Wen, Catherine Leung, Siyuan Wang, Leon Zaruvinsky, Mateo Espinosa, Rick Lin, Zhongling Liu, Jake Padilla, and Christina Delimitrou. 2019. An Open-Source Benchmark Suite for Microservices and Their Hardware-Software Implications for Cloud & Edge Systems. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (ASP-LOS '19). Association for Computing Machinery, New York, NY, USA, 3--18.
[12]
Pedro Pinto, Tiago Carvalho, João Bispo, Miguel António Ramalho, and João M.P. Cardoso. 2018. Aspect composition for multiple target languages using LARA. Computer Languages, Systems & Structures 53 (2018), 1--26.
[13]
Gordana Rakić, Zoran Budimac, and Miloš Savić. 2013. Language Independent Framework for Static Code Analysis. In Proceedings of the 6th Balkan Conference in Informatics (BCI '13). Association for Computing Machinery, New York, NY, USA, 236--243.
[14]
Gil Teixeira, João Bispo, and Filipe F. Correia. 2021. Multi-Language Static Code Analysis on the LARA Framework. Association for Computing Machinery, New York, NY, USA, 31--36.
[15]
Xiang Zhou, Xin Peng, Tao Xie, Jun Sun, Chenjie Xu, Chao Ji, and Wenyun Zhao. 2018. Benchmarking Microservice Systems for Software Engineering Research. In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings (ICSE '18). ACM, New York, NY, USA, 323--324.
[16]
Daniel Zügner, Tobias Kirschstein, Michele Catasta, Jure Leskovec, and Stephan Günnemann. 2021. Language-agnostic representation learning of source code from structure and context. arXiv preprint arXiv:2103.11318 (2021).

Cited By

View all
  • (2024)Techniques of SAST Tools in the Early Stages of Secure Software Development: A Systematic Literature Review2024 IEEE International Conference on Engineering Veracruz (ICEV)10.1109/ICEV63254.2024.10766004(1-8)Online publication date: 21-Oct-2024
  • (2023)Analysis of Program Representations Based on Abstract Syntax Trees and Higher-Order Markov Chains for Source Code Classification TaskFuture Internet10.3390/fi1509031415:9(314)Online publication date: 18-Sep-2023

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '22: Proceedings of the 37th ACM/SIGAPP Symposium on Applied Computing
April 2022
2099 pages
ISBN:9781450387132
DOI:10.1145/3477314
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 May 2022

Check for updates

Author Tags

  1. abstract-syntax trees
  2. code analysis
  3. language-agnostic

Qualifiers

  • Poster

Funding Sources

Conference

SAC '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Upcoming Conference

SAC '25
The 40th ACM/SIGAPP Symposium on Applied Computing
March 31 - April 4, 2025
Catania , Italy

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)130
  • Downloads (Last 6 weeks)10
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Techniques of SAST Tools in the Early Stages of Secure Software Development: A Systematic Literature Review2024 IEEE International Conference on Engineering Veracruz (ICEV)10.1109/ICEV63254.2024.10766004(1-8)Online publication date: 21-Oct-2024
  • (2023)Analysis of Program Representations Based on Abstract Syntax Trees and Higher-Order Markov Chains for Source Code Classification TaskFuture Internet10.3390/fi1509031415:9(314)Online publication date: 18-Sep-2023

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media