Abstract
AbstractCode generation is a key technique for model-driven engineering (MDE) approaches of software construction. Code generation enables the synthesis of applications in executable programming languages from high-level specifications in UML or in a domain-specific language. Specialised code generation languages and tools have been defined; however, the task of manually constructing a code generator remains a substantial undertaking, requiring a high degree of expertise in both the source and target languages, and in the code generation language. In this paper, we apply novel symbolic machine learning techniques for learning tree-to-tree mappings of software syntax trees, to automate the development of code generators from source–target example pairs. We evaluate the approach on several code generation tasks, and compare the approach to other code generator construction approaches. The results show that the approach can effectively automate the synthesis of code generators from examples, with relatively small manual effort required compared to existing code generation construction approaches. We also identified that it can be adapted to learn software abstraction and translation algorithms. The paper demonstrates that a symbolic machine learning approach can be applied to assist in the development of code generators and other tools manipulating software syntax trees.
Publisher
Springer Science and Business Media LLC
Subject
Computer Science Applications,Computer Networks and Communications,Computer Graphics and Computer-Aided Design,Computational Theory and Mathematics,Artificial Intelligence,General Computer Science
Reference32 articles.
1. Aggarwal K, Salameh M, Hindle A. Using machine translation for converting Python 2 to Python 3 code. PeerJ Preprints. 2015.
2. Balogh Z, Varro D. Model transformation by example using inductive logic programming. SoSyM. 2009;8:347–64.
3. Burgueno L, Cabot J, Gerard S. An LSTM-based neural network architecture for model transformations. In: MODELS ’19. pp. 294–9. 2019.
4. Chen X, Liu C, Song D. Tree-to-tree neural networks for program translation. In: 32nd conference on neural information processing systems (NIPS 2018). 2018.
5. Derakhshandi M, Kolahdouz-Rahimi S, Troya J, Lano K. A model-driven framework for developing android-based classic multiplayer 2D board games. Autom Softw Eng. 2021;28(2):1–57.
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Agile model-driven re-engineering;Innovations in Systems and Software Engineering;2024-06-18
2. A Concrete Syntax Transformation Approach for Software Language Processing;SN Computer Science;2024-06-13
3. Leveraging pre-trained language models for code generation;Complex & Intelligent Systems;2024-02-29
4. Using model-driven engineering to automate software language translation;Automated Software Engineering;2024-02-28
5. Program Abstraction and Re-Engineering: An Agile MDE Approach;2023 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C);2023-10-01