| Instructor | Yuepeng Wang |
| Time and Location | Tue 10:30 am - 12:20 pm @ WMC2503 Fri 10:30 am - 11:20 am @ AQ4140 |
| Instructor Email | yuepeng@sfu.ca |
| Instructor Office Hours | Fri 11:30 am - 12:30 pm or by appointment |
| TA | Yang He |
| TA Email | yha244@sfu.ca |
| TA Office Hours | Tue 2:00 - 3:00 pm @ Zoom |
| Week | Date | Topic | Assign |
|---|---|---|---|
| 1 | 09/02 | No Class | |
| 09/05 | Introduction | ||
| 2 | 09/09 | Synthesis, Grammar, and DSL | |
| 09/12 | Abstract Syntax Tree | ||
| 3 | 09/16 | Inductive Synthesis | P |
| 09/19 | Boolean Satisfiability | ||
| 4 | 09/23 | Satisfiability Modulo Theories | |
| 09/26 | Satisfiability Modulo Theories | ||
| 5 | 09/30 | National Day for Truth and Reconciliation (No Class) | |
| 10/03 | [1] Recursive Program Synthesis. CAV'13 | ||
| 6 | 10/07 | [2] Scaling Enumerative Program Synthesis via Divide and Conquer. TACAS'17 [3] Synthesis Through Unification. CAV'15 |
R1 |
| 10/10 | [4] Program Sketching. STTT'13 | ||
| 7 | 10/14 | [5] Synthesizing Data Structure Transformations from Input-Output Examples. PLDI'15 [6] Type-Directed Program Synthesis for RESTful APIs. PLDI'22 |
R2 |
| 10/17 | Discussion | ||
| 8 | 10/21 | [7] Synthesizing Highly Expressive SQL Queries from Input-Output Examples. PLDI'17 [8] Component-Based Synthesis of Table Consolidation and Transformation Tasks from Examples. PLDI'17 |
R3 |
| 10/24 | [9] Data Migration using Datalog Program Synthesis. VLDB'20 | ||
| 9 | 10/28 | [10] Program Synthesis using Conflict-Driven Learning. PLDI'18 [11] Stochastic Superoptimization. ASPLOS'13 |
R4 |
| 10/31 | Discussion | ||
| 10 | 11/04 | [12] Programming by Demonstration Using Version Space Algebra. ML'03 [13] FlashMeta: a Framework for Inductive Program Synthesis. OOPSLA'15 |
R5 |
| 11/07 | [14] egg: Fast and Extensible Equality Saturation. POPL'21 | ||
| 11 | 11/11 | Rememberance Day (No Class) | |
| 11/14 | [15] Program Synthesis using Abstraction Refinement. POPL'18 | ||
| 12 | 11/18 | [16] Oracle-Guided Component-Based Program Synthesis. ICSE'10 [17] Multi-modal Synthesis of Regular Expressions. PLDI'20 |
R6 |
| 11/21 | Discussion | ||
| 13 | 11/25 | [18] Program Synthesis Using Deduction-Guided Reinforcement Learning. CAV'20 [19] Jigsaw: Large Language Models Meet Program Synthesis. ICSE'22 |
|
| 11/28 | [20] Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant. POPL'15 | ||
| 14 | 12/02 | Time for Final Project | |
| 12/05 | No Class |