Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Compilation and Automatic Programming

Similar presentations


Presentation on theme: "Advanced Compilation and Automatic Programming"β€” Presentation transcript:

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


Download ppt "Advanced Compilation and Automatic Programming"

Similar presentations


Ads by Google