CS undergraduate student Rong Pan wins gold at PLDI 2018 SRC

CS undergraduate student Rong Pan has been awarded a gold in the PLDI (Programming Language Design and Implementation) 2018 SRC (Student Research Competition) for his project “Solving Program Sketches with Large Constants."  "Program sketching allows programmers to write a partial program specifying the structure of the desired solution while leaving low-level implementation details undefined," says Pan. "The goal is to find a completion of the program that satisfies a given specification. The most popular sketching tool is Sketch, and despite its success in many application domains, Sketch can perform poorly in the presence of large constants. This limitation has become an obstacle to further development of some techniques and tools based on Sketch, such as the program repair tool JDial , which uses Sketch to repair student submissions to introductory programming assignments automatically.

According to Pan, "Our key observation is the following: a large integer number could be represented using a set of small numbers using modular arithmetic. In this work, we propose to simplify synthesis problems by modifying programs to execute under this modular semantics, and we study when such a  transformation is sound. Our preliminary experimentation showed that Sketch runs faster by adopting the modular arithmetic technique on some representative benchmarks."

PLDI is the premier forum in the field of programming languages and programming systems research, covering the areas of design, implementation, theory, applications, and performance. The ACM Student Research Competition (SRC), sponsored by Microsoft Research, offers a unique forum for undergraduate and graduate students to present their original research on programming language design, implementation, theory, applications, and performance at PLDI 2018. The goal is to give students a place to discuss their research with experts in their field and to help them sharpen their research and communication skills.