About
I am an Assistant Professor in Programming Languages at SFU's Computing Science department.
I am looking for interested students to join my group. Read more here.
Research Interests
I am very interested in how program synthesis can change how programmers interact with computers. I believe tools can automate many programming tasks, allowing programmers to spend less time on tedious aspects of code, and more time on implementing core algorithms.
Current Projects
Burst - Bottom-up synthesis of functional programs from logical specifications.
Hanoi - Generating representation invariants for data structure verification through a data-driven algorithm.
Type-Directed Refactorings - Still looking for a cool name for this project. Enable robust refactorings based on types, rather than syntax.
Students
PhD Students
Clement WanEllenor Taghayor
MSc Students
Jimmy Chen ChenNazanin Yousefian
Undergrad Students
David WeibePast Projects
Saggitarius - Inducing grammars within user-described domains.
Optician - Synthesizing data synchronization transformations from regular expression specifications and input output examples.Blue-Pencil - Synthesizing repetitive document edits from observing user interactions with that document.
Conference Papers
Relational Synthesis of Recursive Programs via Constraint Annotated Tree Automata - CAV 2024 Paper Code
Certifying Zero-Knowledge Circuits with Refinement Types - S&P 2024 Paper
Saggitarius: A DSL for Specifying Grammatical Domains - OOPSLA 2023 Paper Full
Bottom-up Synthesis of Recursive Functional Programs using Angelic Execution - POPL 2022 Paper Full Artifact Video
Synthesizing Lenses - Thesis Paper
Data-Driven Inference of Representation Invariants - PLDI 2020 Paper Full Artifact Video
On the Fly Synthesis of Edit Suggestions - OOPSLA 2019 Paper Video
Synthesizing Symmetric Lenses - ICFP 2019 Paper Full Artifact Video
Program Synthesis Through Reinforcement Learning Guided Tree Search - Arxiv 2018 Paper
Synthesizing Quotient Lenses - ICFP 2018 Paper Artifact Video
Synthesizing Bijective Lenses - POPL 2018 Paper Full Artifact Video
Workshop Papers
Linguistic Tools for Managing Grammatical Domains - LangSec 2022 Paper Slides
Awards and Grants
NSERC Discovery, 2023
NSERC Discovery Launch Supplement, 2023
POPL Distinguished Paper Award, 2022
PLDI Distinguished Paper Award, 2020
ACM SIGPLAN PAC Award, 2019
ACM SIGPLAN PAC Award, 2018
First Place ICFP Student Research Competition, 2017
ACM SIGPLAN PAC award, 2017
Service
PLDI 2024 Publicity Co-Chair
ESOP 2024 Program Committee
PLDI 2023 Publicity Co-Chair
POPL 2023 Tutorial and Workshop Co-Chair
APLAS 2022 Program Committee
PLDI 2022 Program Committee
ICFP 2021 Student Research Competition Chair
OOPSLA 2020 Artifact Evaluation Committee
BX 2019 Program Committee
ESOP 2019 External Reviewer
TOPLAS 2017 External Reviewer
PLDI 2017 Artifact Evaluation Committee
Talks
Bottom-Up Synthesis of Recursive Functional Programs - Jetbrains Programming Languages and Tools Lab - March 21 Seminar Video
Verification and Synthesis for Data Structures - Workshop on Dependable and Secure Software Systems 2021 Video
Expanding the Power of Lens Synthesis - BX 2019 Slides
Scheduling
To make planning easier, I keep my schedule publicly available here.