Abstract

Program synthesis is defined as a software development step aims at achieving an automatic process of code generation that is satisfactory given high-level specifications. There are various program synthesis applications built on Machine Learning (ML) and Natural Language Processing (NLP) based approaches. Recently, there have been remarkable advancements in the Artificial Intelligent (AI) domain. The rise in advanced ML techniques has been remarkable. Deep Learning (DL), for instance, is considered an example of a currently attractive research field that has led to advances in the areas of ML and NLP. With this advancement, there is a need to gain greater benefits from these approaches to cognify synthesis processes for next-generation model-driven engineering (MDE) framework. In this work, a systematic domain analysis is conducted to explore the extent to the automatic generation of code can be enabled via the next generation of cognified MDE frameworks that support recent DL and NLP techniques. After identifying critical features that might be considered when distinguishing synthesis systems, it will be possible to introduce a conceptual design for the future involving program synthesis/MDE frameworks. By searching different research database sources, 182 articles related to program synthesis approaches and their applications were identified. After defining research questions, structuring the domain analysis, and applying inclusion and exclusion criteria on the classification scheme, 170 out of 182 articles were considered in a three-phase systematic analysis, guided by some research questions. The analysis is introduced as a key contribution. The results are documented using feature diagrams as a comprehensive feature model of program synthesis showing alternative techniques and architectures. The achieved outcomes serve as motivation for introducing a conceptual architectural design of the next generation of cognified MDE frameworks.

Highlights

  • Since the early days of computer science, the automatic generation of correct, complete, and executable program code from high-level logical specifications has been a grand ambition

  • It is worth mentioning that during the conducted domain analysis, we found various deep learning techniques adopted in different program synthesis applications, such as DeepCom [126] and CRAIC [127] for code comment, the CDE-Model [118] for code summarization, DeepRepair [156] for code repair, and RobustFill [82]

  • Especially especially convolutional neural networks (CNNs) and recurrent learning advanced deep neural networks, convolutional neural networks (CNNs) and recurrent systems that are connected to some huge model/neural networksnetworks (RNNs), (RNNs), have been used for used code learning systems that are connected to some huge model/neural have been generation, as well as as object text analysis

Read more

Summary

Introduction

Since the early days of computer science, the automatic generation of correct, complete, and executable program code from high-level logical specifications has been a grand ambition. Program synthesis brings many benefits to software engineers and developers when it is applied to the software system development lifecycle It helps several development tasks, such as model checking, testing and code repairing, to be accomplished without using advanced programming skills. Distinguishable features for the categorization of existing program synthesis approaches and frameworks are presented through the application of systematic domain analysis to published works that are reviewed from various sources such as the Institute of Electrical and Electronic Engineers (IEEE) Xplore, the Association for Computing Machinery (ACM) Digital Library, Science Direct, and Springer. The conducted systematic review as well as the proposed feature model guide us in introducing a conceptual architectural design of what we call the “cognified code generation framework”, as a second contribution.

Brief History
Transformational Systems and Program Synthesis
Methodology
Strategy of Domain Analysis
Definition
Conduction
Inclusion and Exclusion Criteria
Classification Scheme
Paradigms
Distribution
Inductive
Deductive
Features of Program Synthesis
Developer
50. Publications
Changes inin expressing intent trendsbetween between
A Domain-Specific
Search Space of the Program
Search
11. Distribution
12. Features
13. Distribution
15. Top-level
16. Detailed
Applications of Program Synthesis
Architectural Design of a Suggested Code Generation Framework
Concepts
Architecture of the the Synthesis
23. Overall
Recommended
Language
Intent Model
Design Model
Transformations Engine
Code Generation Engine
Findings
Conclusions

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.