Download presentation
Presentation is loading. Please wait.
1
Advanced Compilation and Automatic Programming
βπβππ π(π,ππ) Advanced Compilation and Automatic Programming π π ππ[π](ππ)
2
Lecture 1 Course Overview
Xiaokang Qiu
3
Who are we? Xiaokang Qiu xkqiu@purdue.edu Assistant Professor of ECE
Research interests: programming languages, formal methods, and software engineering, making programming easier, more reliable and more productive How about you?
4
What is this course about?
The goal of the course is to introduce compile-time software analysis and synthesis techniques Youβll get familiar with useful tools for analyze/verify/synthesize your programs β Β First 1/3 course: Core techniques β Β Second 1/3 course: Presentations on techniques by everyone β Β Third 1/3 course: Projects, and project presentations β Β No final exam
5
Logistics: When & Where
Lecture: MWF 10:30-11:20 (EE 224) But you already knew that ο Office Hours Answer questions, discuss your project In my office (EE 334C) After Mondayβs class? Course Website Website: Piazza:
6
Logistics: Grading 10% β Problem sets 20% β Paper presentation
70% β Project 3% β Team formed by deadline 10% β 1-page project proposal 7% β Proposal presentation 20% β Final presentation 30% β Final report
7
Logistics: PSets 3-4 PSets covering core techniques (first 1/3 course)
Submission details Posted on course website Submitted through ?
8
Logistics: Paper Presentation
Ideally, each person is expected to learn all core techniques, learn one particular technique in detail, and use it in a concrete project, giving a theoretical or practical contribution. How it works: A list of papers will be posted on the course website Pick a paper from the list, hopefully related to your project Present the paper as a full lecture You may suggest a paper out of the list (you need to justify your choice)
9
Logistics: Project Teams of 1 or 2 people (3%)
Expectations commensurate with size of team 1-page project proposal (10%) Proposal presentation (7%) Tell us what you plan to do and give some evidence that youβve started to work on it Final presentation (20%) Project report (30%) Hopefully be at the level of a conference publication. Will be judged in terms of quality of execution originality scope
10
Techniques: Verification
C.A.R. Hoare
11
Over 40 years of work on Floyd-Hoare style reasoning
Infrastructure: Verifiers: Success Stories: Coq Robert W. Floyd C.A.R. Hoare Verve OS
12
Techniques: Synthesis
13
What is software synthesis?
Zohar Manna Richard Waldinger
14
The synthesis conundrum
I donβt want to program The machine should program for me But I need to tell the machine what I want I need a notation to describe what I want with great precision with little room for ambiguity So instead of βprogrammingβ I will write detailed step by step descriptions of system behavior In a notation that requires great mathematical sophistication That I have never used before (unlike my favorite programming language which I started using in grade school)
15
What is software synthesis?
When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop. -Allan Perlis 1982
16
FlashFill: a feature of Excel 2013 (Sumit Gulwani et al.)
17
FlashFill: a feature of Excel 2013 (Sumit Gulwani et al.)
Result of the program generated from the first row applied to the remaining rows.
18
Verification as A Synthesis Problem
Logic L Space of proofs x=1; y=1; while (*) { x=x+y; y=x+y; } ο ο theorem proof Q: is y>=1 always true? ο ο ο Program Correct?
19
Reactive Synthesis Environment System
while(true){ read inputs; make decisions; update state; write outputs; } System Inputs Outputs Finite programs with infinite execution Very nice theory developed since 1950s
20
What is this course about?
Logical Reasoning Synthesis Verification Machine Learning
21
Techniques: Logic β’ Logic: the Calculus of Computation
the study of the principles of valid inference and demonstration. the study of the structure of arguments. the study of formal inference. β’ Syntax Semantics Inference (form) (meaning) (reasoning) β’ βContrariwise,β ... βif it was so, it might be; and if it were so, it would be; but as it isnβt, it ainβt. Thatβs logic.β β Tweedledum and Tweedledee, Lewis Carroll βπ₯,π¦, π₯ β² : π₯>π¦β§ π₯ β² =π₯+1 β π₯ β² >π¦
22
Some successful tools SMT solver Software verifier
Z3, CVC4, β¦ Software verifier Dafny Inductive synthesizer Sketch Static analyzer CPAChecker Second-order tree solver MONA
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.