UROP Proceedings 2020-21

School of Engineering Department of Computer Science and Engineering 120 Automated Program Synthesis Supervisor: CHEUNG Shing Chi / CSE Student: LUK Sui Hei / COMP Course: UROP1100, Spring In a computer system, coding is a convenient way to manage and manipulate bulk data, which would be tedious, error prone and time consuming to be done manually. However, clerks who need to handle the bulk data can have no knowledge nor experience in coding. With the advancement in AI and software technologies, it would be possible to synthesise programs without writing code through programming-byexample (PBE). In PBE, a program is synthesised based on a few examples provided by the users demonstrating their intentions. It is necessary to provide users a graphical user interface for interacting with the PBE system. The rationale is users could be illiterate in coding and it would be difficult for them to access through a command-line interface. Therefore, to facilitate a ease in employing the system, this project aims at developing a frontend graphical user interface for the system. In the field, there are similar project by Microsoft. Automated Program Synthesis Supervisor: CHEUNG Shing Chi / CSE Student: LU Junxian / DSCT Course: UROP1000, Summer In this session of UROP, I participated in the Automated Program Synthesis project supervised by Prof. CHEUNG. For most of the time, I work with Mr. WU Jiarong, who is a Ph.D. student working on this research. Soon after finishing exams of the regular term, I communicated with Mr. WU to better understand the actual target of the project and what background knowledge is needed. After the meeting, I understand that the goal of this project is to synthesize program analysis scripts. My main duty was to collect and prepare data. My first task is to collect real-world use cases of our Synthesis program in conference papers. In some of the related papers, the author provided code and data. So my second task is to check and make sure these artifacts (code and data) work. There are also some papers that don’t have artifacts available but described their procedure. My third task is to recreate the artifact according to the paper. In conclusion, I learn a lot about code analysis and related tools through different tasks I did in this UROP session.