Automating the Development of API-Based Generators Using Code Idioms Mining
API-Based Generators (ABGs) allow practitioners to achieve the advantages of Model-Driven Engineering (MDE) without making significant changes to their current workflow or the architecture of their solution. However, using ABGs that are defined in terms of the syntax rules of a target language can be cumbersome and impractical. Additionally, manually developing an ABG based on higher-level concepts already used in an existing solution is labor-intensive and time-consuming. This paper introduces a new approach called Semi-automatic API-based Generators Development (SAGED) to expedite the creation of ABGs customized for MDE development of existing solutions. SAGED accomplishes this by (i) providing insight into code idioms that could be considered good candidates for code generation, as they frequently appear in the codebase, and (ii) automating the creation of a code generation API for an ABG, defined in terms of the identified code idioms. The SAGED approach relies on mining code idioms from existing, unlabeled source code based on a machine learning technique called the nonparametric Bayesian Probabilistic Tree Substitution Grammar (PTSG). The main contributions of this paper include the introduction of the SAGED approach, an explanation and optimization of the Type-Based MCMC as a method for approximating the nonparametric Bayesian PTSG, and the development of an open-source inference core for implementing the inference method in different programming languages. Furthermore, the paper presents a solution for implementing SAGED in the C# programming language, along with case studies that demonstrate its effectiveness.
Thu 9 OctDisplayed time zone: Eastern Time (US & Canada) change
11:00 - 12:30 | Session 6: Models in Software Engineering PipelinesResearch Papers / Journal-First at DCIH 102 Chair(s): Ed Seidewitz Model Driven Solutions Hybrid | ||
11:00 18mTalk | A Metamodel for Reengineering CI/CD PipelinesFT Research Papers Hugo da Gião University of Porto & HASLab/INESC TEC, Jácome Cunha Universidade do Porto, Rui Pereira HASLab/INESC TEC, André Flores Faculdade de Engenharia da Universidade do Porto, Vasco Amaral NOVA University Lisbon, Gregor Engels Paderborn University, Stefan Sauer Paderborn University | Software Innovation Campus Paderborn | ||
11:18 18mTalk | Deepening our Understanding on the use of Models and Code in Game Software Engineering: A Controlled Experiment in Unreal Engine Research Papers Jose Ignacio Trasobares SVIT Research Group, Universidad San Jorge, África Domingo SVIT Research Group, Universidad San Jorge, Jorge Echeverria SVIT Research Group, Universidad San Jorge, Lorena Arcega SVIT Research Group, Universidad San Jorge, Carlos Cetina | ||
11:36 18mTalk | Automating the Development of API-Based Generators Using Code Idioms Mining Journal-First DOI | ||
11:54 18mTalk | A Knowledge-based Approach for Guided Development of Infrastructure-as-Code Journal-First Zoe Vasileiou , Indika Kumara Tilburg University, Georgios Meditskos , Kamil Tokmakov , Dragan Radolovic , Jesus Gorronogoitia-Cruz , Elisabeta di Nitto Politecnico di Milano, Damian Andrew Tamburri University of Sannio - JADS/NXP Semiconductors, Willem-Jan van den Heuvel JADS/Tilburg University, Stefanos Vrochidis Centre for Research and Technology Hellas (CERTH-ITI) DOI | ||
12:12 18mTalk | Hand-Written Code Preservation in Model-to-Text Transformation using Intrinsic Redundancy Research Papers Ionut Predoaia University of York, Sultan Almutairi Shaqra University, Athanasios Zolotas Rolls-Royce, Antonio Garcia-Dominguez Department of Computer Science, University of York, Dimitris Kolovos University of York | ||