UROP Proceedings 2021-22

School of Engineering Department of Computer Science and Engineering 122 Programming Language Design and Implementation Supervisor: PARREAUX Lionel / CSE Student: LUO Yicong / COMP Course: UROP1100, Spring During this UROP course, I mainly contribute to the development of the mlscript, an object oriented functional language with principal type inference developed by Prof Lionel Parreaux. The first feature added to the project is the array type, which will be the super type to the existing tuple. The second one is the addition of mutable fields for record types. The last contribution to the project during the UROP period is the splice type, which is still in progress. This report will describe and summarize all the work and contribution to the mlscript language and future works. Programming Language Design and Implementation Supervisor: PARREAUX Lionel / CSE Student: WONG Ho Nam / SENG Course: UROP1100, Summer My main task is to implement precise type inference of array indexing in the language MLscript developed by TACO Lab members. This report first introduces the theoretical knowledge I learned by reading the book Types and Programming Languages during the first two months. After that, the report elaborates on my contributions to the language. Lastly, the report describes the possible future work. In short, the report summarizes what I have learned and contributed in this course. Development on New Compiler for the Artiq System for Quantum Information Experiments (COMP) Supervisor: PARREAUX Lionel / CSE Student: NARAYAN Aadityavardhan / COMP Course: UROP1100, Summer The purpose of this UROP project was to contribute to the development of NAC3, a compiler for Python programs written for ARTIQ (Advanced Real-Time Infrastructure for Quantum Physics) systems. One of the missing features in NAC3 is the support for static class attributes, which serve as significant tools in programming by enabling the definition of class data members that are independent of any of the class objects. As effective members of the class construct, their implementation will aid the practicality of Python code compiled with NAC3. The aim of this report is to describe the work that has been put into introducing static class attributes into NAC3.