140 likes | 299 Views
CSE-321 Programming Languages Review. 박성우. POSTECH June 14, 2011. Topics Covered. SML programming Inductive proofs -Calculus Operational semantics De Bruijn indexes Simply-typed -calculus Abstract machine Subtyping, Object-orientation (Assignment 7) Recursive type Polymorphism
E N D
CSE-321 Programming LanguagesReview 박성우 POSTECH June 14, 2011
Topics Covered • SML programming • Inductive proofs • -Calculus • Operational semantics • De Bruijn indexes • Simply-typed -calculus • Abstract machine • Subtyping, Object-orientation (Assignment 7) • Recursive type • Polymorphism • Type reconstruction, W-algorithm • Compilation (Assignment 8, Part 2)
321 강의의 범위 • CMU 15-312 Principles of Programming Languages 수준 • http://www.cs.cmu.edu/~rwh/courses/ppl/ • http://www.cs.cmu.edu/~rwh/courses/ppl/schedule.html
Assignments • A1: 26, 95.27 (SML programming 1) • A2: 26, 92.4 (SML programming 2) • A3: 26, 81.54 (SML programming 3) • A4: 25, 89.6 (Implementing -calculus) • A5: 25, 91.4 (Typechecking) • A6: 22, 70.18 (De Bruijn indexes) • A7: 18, 79.17 (Featherweight Java) • A8: ?, ? (Type reconstruction and translation)
2006 vs. 2007 vs. 2009 vs. 2010 • Assignment 4 (Implementing -calculus) • average 2006: 88.0 • average 2007: 88.57 • average 2009: 90.17 • average 2010: 93.48 • average 2011: 89.6 • Assignment 6 (De Bruijn indexes) • average 2007: 59.13 • average 2009: 56.12 • average 2010: 54.55 • average 2011: 70.18 • Assignment 7 (Featherweight Java) • average 2006: 71.30 • average 2007: 77.71 • average 2009: 68.13 • average 2010: 66.92 • average 2011: 79.17
절대 평가 • Exam 20% * 2 • Quiz 10% • Assignment 50% • A1, A2, A3: 2.5% • A4: 5% • A5: 5% • A6: 10% • A7: 7.5% • A8 (Part 1): 15% • A8 part 2: Extra 25%
LICS 2011(Logic in Computer Science) http://www.postech.ac.kr/~gla/cs433/index.html
Proof in Coq • Strings of matched parentheses Inductive T : Set := | eps : T | cons : E -> T -> T. Inductive mparen : T -> Prop := ... Inductive lparen : T -> Prop := ... Theorem mparen2lparen : forall s:T, mparen s -> lparen s. Proof. intros s H. induction H. apply Leps. rewrite <- concat_eps. auto using Leps, Lseq. auto using lparenConcat. Qed.
Pythagoras' theorem • Proof Theorem even_is_even_times_even: forall (n : nat), even (n * n) -> even n. Theorem main_thm: forall (n p : nat), n * n = double (p * p) -> p = 0. Definition irrational (x : R) : Prop := forall (p : Z) (q : nat), q <> 0 -> x <> (p / q)%R. Theorem irrational_sqrt_2: irrational (sqrt 2%nat).
Simply-typed -Calculus • Proof of determinism of evaluations Theorem eval_deterministic : forall t t' t'', eval t t' -> eval t t'' -> t' = t''. • Proof of type safety in simply-typed lambda-calculus
5 4 Four Color Problem • "Every map can be colored with no more than 4 colors." • Proposed in 1852 • Computer-based solution published in 1976 • Formalization of the proof in 1994 • theorem prover Coq
감사합니다 Life is an exciting adventure... gla@postech.ac.kr