Jason Leiton-Jimenez, Luis Barboza-Artavia, Antonio Gonzalez-Torres, Pablo Brenes-Jimenez, Steven Pacheco-Portuguez, Jose Navas-Su, Marco Hernández-Vasquez, Jennier Solano-Cordero, Franklin Hernandez-Castro, Ignacio Trejos-Zelaya, Armando Arce-Orozco
{"title":"GAST: A generic AST representation for language-independent source code analysis","authors":"Jason Leiton-Jimenez, Luis Barboza-Artavia, Antonio Gonzalez-Torres, Pablo Brenes-Jimenez, Steven Pacheco-Portuguez, Jose Navas-Su, Marco Hernández-Vasquez, Jennier Solano-Cordero, Franklin Hernandez-Castro, Ignacio Trejos-Zelaya, Armando Arce-Orozco","doi":"10.29019/enfoqueute.957","DOIUrl":null,"url":null,"abstract":"Organizations use various programming languages to develop their systems. These aim to take advantage of the most appropriate features of each language for a given domain and require programmers to command different languages and also to face the growing complexity of software development and maintenance. So, they need tools to help them analyze programs to identify relationships between their internal elements, uncover patterns, and calculate quality metrics. However, most tools have limited support for parsing multiple programming languages and high acquisition costs. Therefore, there is a need for new methods to analyze code written in multiple programming languages. This article describes the design of a method to automatically transform the syntax of various programming languages into a universal language with a generic syntax. The function of the generic language is to encapsulate the specificities of each specific language, so that the analysis of programs is facilitated in a single programming syntax and not in multiple syntaxes. The advantage of this approach is that only one analysis engine is required, not multiple code analyzers, to study the programs.","PeriodicalId":72918,"journal":{"name":"Enfoque UTE : revista cientifica","volume":"67 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Enfoque UTE : revista cientifica","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.29019/enfoqueute.957","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Organizations use various programming languages to develop their systems. These aim to take advantage of the most appropriate features of each language for a given domain and require programmers to command different languages and also to face the growing complexity of software development and maintenance. So, they need tools to help them analyze programs to identify relationships between their internal elements, uncover patterns, and calculate quality metrics. However, most tools have limited support for parsing multiple programming languages and high acquisition costs. Therefore, there is a need for new methods to analyze code written in multiple programming languages. This article describes the design of a method to automatically transform the syntax of various programming languages into a universal language with a generic syntax. The function of the generic language is to encapsulate the specificities of each specific language, so that the analysis of programs is facilitated in a single programming syntax and not in multiple syntaxes. The advantage of this approach is that only one analysis engine is required, not multiple code analyzers, to study the programs.