Instructor: Ethan Cecchetti Comp Sci 704

Published  . 0 views
↓ Download
Instructor: Ethan Cecchetti Comp Sci 704
1 / 1
Instructor: Ethan Cecchetti Comp Sci 704 - slide 1 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 2 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 3 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 4 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 5 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 6 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 7 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 8 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 9 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 10 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 11 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 12 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 13 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 14 of 15 Instructor: Ethan Cecchetti Comp Sci 704 - slide 15 of 15
Description: Instructor: Ethan Cecchetti Comp Sci 704 Principles of Programming Languages Tells a computer what to do What is a Program? Computer Science 704 Principles of Programming Languages Fall 2024 Not always obvious How do we know what it

Related Topics

Download Presentation

"Instructor: Ethan Cecchetti Comp Sci 704" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.

Presentation Transcript

slide1. Instructor: Ethan Cecchetti Comp Sci 704 Principles of Programming Languages<br>
slide2. Tells a computer what to do What is a Program? Computer Science 704 – Principles of Programming Languages – Fall 2024 Not always obvious How do we know what it means?<br>
slide3. Computer Science 704 – Principles of Programming Languages – Fall 2024 Odd Program Behavior Wat: https://www.destroyallsoftware.com/talks/wat
[Gary Bernhardt 2012]<br>
slide4. Computer Science 704 – Principles of Programming Languages – Fall 2024 Odd Program Behavior “same object” In small groups:
Introduce yourself
Program & year
Interests
Analyze programs What should they do?
What do they do?<br>
slide5. Computer Science 704 – Principles of Programming Languages – Fall 2024 Odd Program Behavior: Java class A {
static final int a = B.b + 1;
}
class B {
static final int b = A.a + 1;
} What should this do?<br>
slide6. How do we know what a language does? Odd Program Behavior Computer Science 704 – Principles of Programming Languages – Fall 2024 What should we implement? Is there a bug? Need an implementation Test weird programs? Need a specification!<br>
slide7. How do we specify a programming language?
Industry: specification document
Formal Specification:
Syntax
Semantics Language Specification Computer Science 704 – Principles of Programming Languages – Fall 2024 What programs look like What programs do Often vague and ambiguous<br>
slide8. Computer Science 704 – Principles of Programming Languages – Fall 2024 Formal Semantics What happens when program runs Dynamic Semantics Reason about programs before they run Static Semantics Operational Semantics
Execution on abstract machine
Denotational Semantics
Program as mathematical object
Axiomatic Semantics
Logical formulae program obeys Type Systems
How sub-programs may interact
Static Analysis
Many properties Precisely define these ideas!<br>
slide9. You will be able to:
Define language features with formal models.
State and prove theorems about languages using a variety of techniques.
Analyze language properties with formal techniques. Learning Outcomes Computer Science 704 – Principles of Programming Languages – Fall 2024 Inference rules, denotational semantics, etc. Induction, logical relations, etc. Termination, secure information flow, etc. Type systems, abstract interpretation, etc.<br>
slide10. Highly mathematical content
No programming

Chalkboard lectures
Notes (hopefully) online after class What to Expect Computer Science 704 – Principles of Programming Languages – Fall 2024 Comfort with set theory, induction, and functional programming all helpful Written problem sets and exams This is the only (planned) slide lecture<br>
slide11. Participate

Provide feedback What to Expect: A Graduate Class Computer Science 704 – Principles of Programming Languages – Fall 2024 My first time teaching 704 Wide variety of backgrounds Questions help everyone learn!<br>
slide12. Written problem sets
Challenging material
Work in groups, start early!
Grades are on an effort scale
✓ – engaged with material, did reasonably well
✓+ – did something surprisingly awesome
0 – major gaps or significant misunderstanding What to Expect: Homeworks Computer Science 704 – Principles of Programming Languages – Fall 2024 New ideas, not just “lecture practice” Goal is learning, not evaluation<br>
slide13. Two take-home exams
One midterm (late Oct)
Cumulative final (Dec)
Likely 48-hour exams, available for 1 week
Very picky grading What to Expect: Exams Computer Science 704 – Principles of Programming Languages – Fall 2024 General idea often simple Course goal: learn to prove theorems very rigorously<br>
slide14. Grading Computer Science 704 – Principles of Programming Languages – Fall 2024 Stop by Ethan’s office (CS 7395) by Sept 18! (During office hours, please)<br>
slide15. More Information Computer Science 704 – Principles of Programming Languages – Fall 2024 Instructor: Ethan Cecchetti
Office: CS 7395
Office Hours: 2-3pm Wed, or by appointment
Contact: cecchetti@wisc.edu
Course Page:
cecchetti.sites.cs.wisc.edu/cs704/2024fa.html<br>