Jiasi Shen

Pronunciation
Jiasi Shen Photo
Jiasi Shen 沈嘉思
Ph.D. Candidate, MIT EECS & CSAIL
  • [firstname][at]csail.mit.edu
  • +1-617-253-7768
  • 32 Vassar St, 32-G730, Cambridge, MA 02139
  • Blog   Google Scholar   More links...
News
More news...

I am a Ph.D. student advised by professor Martin Rinard at MIT. I received my bachelor's degree in Computer Science from Peking University.

My main research interests are in programming languages and software engineering. My broader interests include computer systems and security. 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.

I am on the academic job market this year.

Selected Papers

  • Active Learning for Inference and Regeneration of Applications that Access Databases
    Jiasi Shen, Martin Rinard
    TOPLAS 2021: ACM Transactions on Programming Languages and Systems

    We present Konure, a new system that uses active learning to infer models of applications that retrieve data from 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.

    Paper (pdf)
  • Automatic Synthesis of Parallel Unix Commands and Pipelines with KumQuat
    Jiasi Shen, Martin Rinard, Nikos Vasilakis
    In submission
  • Active Loop Detection for Applications that Access Databases
    Jiasi Shen, Martin Rinard
    In submission
  • Using Active Learning to Synthesize Models of Applications that Access Databases
    Jiasi Shen, Martin Rinard
    PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation

    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.

    Paper (pdf)
  • Active Learning for Inference and Regeneration of Computer Programs that Store and Retrieve Data
    Martin Rinard, Jiasi Shen, Varun Mangalick
    Onward! 2018: Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software

    As modern computation platforms become increasingly complex, their programming interfaces are increasingly difficult to use. This complexity is especially inappropriate given the relatively simple core functionality that many of the computations implement. We present a new approach for obtaining software that executes on modern computing platforms with complex programming interfaces. Our approach starts with a simple seed program, written in the language of the developer's choice, that implements the desired core functionality. It then systematically generates inputs and observes the resulting outputs to learn the core functionality. It finally automatically regenerates new code that implements the learned core functionality on the target computing platform. This regenerated code contains boilerplate code for the complex programming interfaces that the target computing platform presents. By providing a productive new mechanism for capturing and encapsulating knowledge about how to use modern complex interfaces, this new approach promises to greatly reduce the developer effort required to obtain secure, robust software that executes on modern computing platforms.

    Paper (pdf)

More papers...

Service

    Program Committee: APLAS 2021, AISTA 2021
    External Review Committee: OOPSLA 2022
    Artifact Evaluation Committee: PLDI 2021, CAV 2020, SAS 2019, SLE 2016, OOPSLA 2016
    Judges: SPLASH 2021 SRC