- PhD defense slides (defense.key, Nov 2018) → phd_defense/ - Master's defense on MOOC peer evaluation (Dec 2014) - ENGI 600 data-driven program repair (Apr 2015) - COMP 600 data-driven program completion (Fall 2015, Spring 2016) - COMP 600 Program Splicing presentation + feedback + response (Spring 2018) - Program Splicing slides in .key and .pdf formats (Spring 2018) Each file has a .md transcription with academic frontmatter. Skipped www2015.pdf (duplicate of existing www15.zip) and syncthing conflict copy.
1.8 KiB
1.8 KiB
category, type, person, date, source
| category | type | person | date | source |
|---|---|---|---|---|
| academic | academic | Yanxin Lu | 2018-05 | splicing_comp600_2018.key |
Program Splicing — COMP 600 Spring 2018 (Keynote)
Yanxin Lu, Swarat Chaudhuri, Christopher Jermaine, David Melski. Keynote presentation, Spring 2018.
Source Keynote file for the Program Splicing COMP 600 presentation. The PDF export is available as splicing_comp600_2018.pdf.
The presentation covers the same content as splicing_comp600_slides_2018.pdf but is a slightly revised version with subtitle "Data-driven Program Synthesis" on the title slide:
- Copying and Pasting problem — time consuming and introduces bugs
- Program Synthesis — automatically generating programs from specifications
- Problem — can we use program synthesis to improve copy-paste?
- Related work — Sketching (PLDI 2005), Code Transplantation (ISSTA 2015)
- Program Splicing approach — automate copying/pasting using 3.5M program corpus, ensure correctness
- Architecture — draft program → Synthesis ↔ PDB → completed program
- PDB — 3.5M Java programs, natural language features, similarity metrics, KNN search, fast top-k query
- Relevant programs — query PDB with draft program to find similar implementations
- Filling holes — enumerative search over candidate expressions from relevant programs
- Variable renaming — resolve undefined variables
- Testing — filter incorrect candidates via unit tests
- Heuristics — type and context-based pruning for search space reduction
- Benchmark — 12 programs, synthesis times 3–161 seconds, efficient algorithm
- User study — 18 participants (12 grad students + 6 professionals), 4 problems, splicing most helpful for algorithmic tasks and tasks without standard solutions
- Conclusion — data-driven synthesis with large corpus, enumerative search, efficient algorithm, fast code reuse