I am an Assistant Professor in the Department of Computer Science and Engineering at the Hong Kong University of Science and Technology where I lead the HKUST Automated Reasoning and Transformation of Software research group.
My main research interests are in programming languages and software engineering. I aim to improve software development by automating tasks that currently require substantial manual engineering effort. My research focuses on developing automatic techniques that analyze, manipulate, and transform software. My broader interests include computer systems and security.
Before joining HKUST in 2023, I received a PhD degree from Massachusetts Institute of Technology, where I worked with Professor Martin Rinard. I have also received a master's degree from MIT and a bachelor's degree from Peking University.
Software plays a central role in numerous aspects of human society. Current software development practices involve significant developer effort in all phases of the software life cycle, including the development of new software, detection and elimination of defects and security vulnerabilities in existing software, maintenance of legacy software, and integration of existing software into more contexts. My research goal is to automate software development tasks and enhance how people create, understand, and improve software. Towards this goal, I have developed automatic techniques that analyze, manipulate, and transform programs. Ongoing and past research projects include:
My PhD research pioneered a new approach, automatic software rejuvenation, which infers an existing program, formulates it as a precise model, and uses the model to regenerate a new program. This paradigm can deliver benefits in many aspects of the software life cycle, such as by generating high-quality code from simple prototypes, improving program comprehension and producing cleaner code, and extracting human knowledge from software and retargeting it to various languages or platforms. In the future, software will serve even more critical tasks in human society. It is important to reduce the fundamental inefficiencies in how people work with software. I aim to capture the maximal benefits from the human effort and knowledge embedded in software and enable new ways to express human creativity.