Software Synthesis

OVERVIEW

Program Synthesis refers to techniques and approaches that automatically generate a program based on a specification described by the programmer or end-user. In this research project, we aim to find ways to improve programmers’ productivity in producing software while preserving the quality of the code.

To achieve the aforementioned goal, we designed an approach that mines a repository of code, identifies frameworks’ APIs used in programs, and creates API usage models. This approach is called SpecMiner.

 

Program Synthesis refers to techniques and approaches that automatically generate a program based on a specification described by the programmer or end-user. In this research project, we aim to find ways to improve programmers’ productivity in producing software while preserving the quality of the code.

To achieve the aforementioned goal, we designed an approach that analyzes frameworks’ source code, mines a repository of code, identifies frameworks’ APIs used in programs, and creates API usage models. This approach is called ArCode.

 

Publications:
Ali Shokri and Mehdi Mirakhorli, “ArCode: A Tool for Supporting Architectural Concerns Comprehension and Implementation”, to be published in preceedings of 29th IEEE/ACM International Conference on Program Comprehension (ICPC 2021).
Ali Shokri, Joanna C. S. Santos, and Mehdi Mirakhorli, “ArCode: Facilitating the Use of ApplicationFrameworks to Implement Tactics and Patterns”, to be published in preceedings of 18th IEEE International Conference on Software Architecture (ICSA 2021).