The Fourth Programming Languages Seminar @ PKU

Time: 10:00-11:30, December 25th, 2019

Place: Rm. 2135, Science Building 2, Peking University


If you are not affliated with Peking University, please send your name and your ID to Yajing Chen(chenyajing0711@pku.edu.cn) at least 24 hours before the seminar in order to enter Peking University.


Talk 1: Using Active Learning to Synthesize Models of Applications That Access Databases

Speaker: Jiasi Shen

Abstract: We present Konure, a new system that uses active learning to infer models of applications that access relational databases. Konure comprises a domain-specific language (each model is a program in this language) and associated inference algorithm that infers models of applications whose behavior can be expressed in this language. The inference algorithm generates inputs and database configurations, runs the application, then observes the resulting database traffic and outputs to progressively refine its current model hypothesis. Because the technique works with only externally observable inputs, outputs, and database configurations, it can infer the behavior of applications written in arbitrary languages using arbitrary coding styles (as long as the behavior of the application is expressible in the domain-specific language). Konure also implements a regenerator that produces a translated Python implementation of the application that systematically includes relevant security and error checks.

Bio: Jiasi Shen is a PhD student at MIT advised by professor Martin Rinard. She received her bachelor's degree in Computer Science from Peking University. Her research interests are in programming languages and software engineering.


Talk 2: Learning to Synthesize

Speaker: Yingfei Xiong

Abstract: The core of bug fixing is to synthesize a correct program to replace the buggy program. Due to the well-known problem of weak specification, the synthesized program should not only pass the tests but should have a high probability of being correct. In this talk, I will introduce our recent work on the learning to synthesize framework to address this problem. Based on a training set of programs and their contexts, this framework combines four tools including rewriting rules, machine learning, constraint solving, and search algorithms to find the most likely programs under a context. We have instantiated the framework for program repair and code generation, both showing significant improvements over the state-of-the-art.

Bio:Yingfei Xiong is an associate professor at Peking University. He got his Ph.D. degree from the University of Tokyo in 2009 and worked as a postdoctoral fellow at University of Waterloo between 2009 and 2011. His research interests lie in software engineering and programming language in general, and bug fixing in particular. He has proposed a set of theories, methodologies, and techniques for bug fixing. For example, the repair approach, ACS, is the first one that achieved >70% precision on a general benchmark; in terms of evolutionary bugs, the delta-based bidirectional transformation framework is now considered as one of the standard types of bidirectional transformation frameworks. His work has been adopted by the industry, such as a Linux kernel configuration project, the Huawei company, and the YanCloud DaaS system.


Previous Article:The Fifth Programming Languages Seminar @ PKU
Next Article:The Third Programming Languages Seminar @ PKU