CSE-321 Programming Languages Review POSTECH June 14, 2011 박성우.

Slides:



Advertisements
Similar presentations
Transposing F to C Transposing F to C Andrew Kennedy & Don Syme Microsoft Research Cambridge, U.K.
Advertisements

Static and User-Extensible Proof Checking Antonis StampoulisZhong Shao Yale University POPL 2012.
Computing Fundamentals 2 Introduction to CafeOBJ Lecturer: Patrick Browne Lecture Room: K408 Lab Room: A308 Based on work by: Nakamura Masaki, João Pascoal.
Comparing Semantic and Syntactic Methods in Mechanized Proof Frameworks C.J. Bell, Robert Dockins, Aquinas Hobor, Andrew W. Appel, David Walker 1.
Proofs and Programs Wei Hu 11/01/2007. Outline  Motivation  Theory  Lambda calculus  Curry-Howard Isomorphism  Dependent types  Practice  Coq Wei.
CSE-321 Programming Languages Review POSTECH June 10, 2010 박성우.
Semantics of Hoare Logic Aquinas Hobor and Martin Henz.
1 How to transform an analyzer into a verifier. 2 OUTLINE OF THE LECTURE a verification technique which combines abstract interpretation and Park’s fixpoint.
March 4, 2005Susmit Sarkar 1 A Cost-Effective Foundational Certified Code System Susmit Sarkar Thesis Proposal.
CSE-321 Programming Languages Predicative Polymorphic -Calculus POSTECH May 23, 2007 박성우.
Semantics Syntax Lunch: Strongly-typed term representations in Coq Andrew Kennedy Microsoft Research Cambridge TexPoint fonts used in EMF. Read the TexPoint.
CSE-321 Programming Languages Subtyping POSTECH May 14, 2007 박성우.
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
Code-Carrying Proofs Aytekin Vargun Rensselaer Polytechnic Institute.
Towards a HOL Framework for the Deductive Analysis of Hybrid Control Systems ADPM’2000 Norbert Völker University of Essex, England.
Crash course on SML Wojciech Moczydłowski SML – functional programming language Complete formal semantics Extremely convenient for writing compilers, interpreters,
Describing Syntax and Semantics
Final Exam Review Cummulative Chapters 0, 1, 2, 3, 4, 5 and 7.
Secure Compiler Seminar 11/7 Survey: Modular Development of Certified Program Verifiers with a Proof Assistant Toshihiro YOSHINO (D1, Yonezawa Lab.)
Types for Programs and Proofs Lecture 1. What are types? int, float, char, …, arrays types of procedures, functions, references, records, objects,...
1 SML fn x => e e 1 e 2 0, 1, 2,..., +, -,... true, false, if e then e else e patterns datatypes exceptions structures functors fun f x = e variables.
0 REVIEW OF HASKELL A lightening tour in 45 minutes.
CSE-321 Programming Languages Introduction to Functional Programming (Part II) POSTECH March 13, 2006 박성우.
CSE-321 Programming Languages Overview POSTECH March 5, 2007 박성우.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
CSE-321 Programming Languages Overview POSTECH March 3, 2011 박성우.
CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.
Type Safety Kangwon National University 임현승 Programming Languages.
CSE-321 Programming Languages Inductive Definitions POSTECH March 14, 2007 박성우.
CSE-321 Programming Languages Inductive Definitions POSTECH March 15, 2006 박성우.
CSE 12 – Basic Data Structures Cynthia Bailey Lee Some slides and figures adapted from Paul Kube’s CSE 12 CS2 in Java Peer Instruction Materials by Cynthia.
CSE-490 Logic in Computer Science The Coq Proof Assistant POSTECH Dec 15, 2006 박성우.
Logic in Computer Science - Overview Sep 1, 2009 박성우.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Coq and Nuprl Wojciech Moczydłowski History World, type system Inductive types in Coq Extraction in Coq Other features of Coq.
Inductive Predicates  Unit vs True  Inductive unit : Set := tt : unit  Inductive True : Prop := I : True  Curry Howard Isomorphism  But Coq distinguish.
Implementing a Dependently Typed λ -Calculus Ali Assaf Abbie Desrosiers Alexandre Tomberg.
CSE-321 Programming Languages Overview POSTECH March 2, 2010 박성우.
Automated tactics for separation logic VeriML Reconstruct Z3 Proof Safe incremental type checker Certifying code transformation Proof carrying hardware.
Just Enough Type Theory or, Featherweight Java A Simple Formal Model of Objects Jonathan Aldrich
Functional Programming IN NON-FUNCTIONAL LANGUAGES.
Inductive Proofs Kangwon National University 임현승 Programming Languages These slides were originally created by Prof. Sungwoo Park at POSTECH.
CSE-321 Programming Languages Curry-Howard Isomorphism POSTECH June 4, 2009 박성우.
Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. L04Ext-1 September 21, 2006http:// Some more thoughts.
Carnegie Mellon Vadim Zaliva, Franz Franchetti Carnegie Mellon University Department of Electrical and Computer Engineering Funded by the DARPA I2O HACMS.
CSE-321 Programming Languages -Calculus (II) POSTECH March 26, 2007 박성우.
1 Aspectual Caml an Aspect-Oriented Functional Language Hideaki Tatsuzawa Hidehiko Masuhara Akinori Yonezawa University of Tokyo.
June 21, Reasoning about explicit strictness in a lazy language using mixed lazy/strict semantics Marko van Eekelen Maarten de Mol Nijmegen University,
CompSci 101 Introduction to Computer Science November 11, 2014 Prof. Rodger CompSci 101 Fall Review for exam.
CSE-321 Programming Languages Abstract Machine E POSTECH May 1, 2006 박성우.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
1 A Certified Type-Preserving Compiler from Lambda Calculus to Assembly Language Adam Chlipala University of California, Berkeley An experiment with variable.
1 Interactive Computer Theorem Proving CS294-9 October 5, 2006 Adam Chlipala UC Berkeley Lecture 7: Programming with Proofs.
1 Interactive Computer Theorem Proving CS294-9 October 19, 2006 Adam Chlipala UC Berkeley Lecture 9: Beyond Primitive Recursion.
1 Interactive Computer Theorem Proving CS294-9 September 7, 2006 Adam Chlipala UC Berkeley Lecture 3: Data structures and Induction.
1 Parametric Higher-Order Abstract Syntax for Mechanized Semantics Adam Chlipala Harvard University ICFP 2008.
Thoughts on Programming with Proof Assistants Adam Chlipala University of California, Berkeley PLPV Workshop.
Generic Programming and Proving for Programming Language Metatheory
Lecture 11: Proof by Reflection
Functional Programming
COSC 5V90 Functional Programming and Interactive Theorem Proving
CSE-321 Programming Languages Simply Typed -Calculus
Types for Programs and Proofs
A lightening tour in 45 minutes
A Verified Compiler for an Impure Functional Language
Typed Arithmetic Expressions
Engineering Aspects of Formal Metatheory
Introduction to Biological Systems
Presentation transcript:

CSE-321 Programming Languages Review POSTECH June 14, 2011 박성우

2 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)

3 321 강의의 범위 CMU Principles of Programming Languages 수준 – – e.html

4 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)

vs vs vs Assignment 4 (Implementing -calculus) –average 2006: 88.0 –average 2007: –average 2009: –average 2010: –average 2011: 89.6 Assignment 6 (De Bruijn indexes) –average 2007: –average 2009: –average 2010: –average 2011: Assignment 7(Featherweight Java) –average 2006: –average 2007: –average 2009: –average 2010: –average 2011: 79.17

6 절대 평가 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%

7 학점

LICS 2011 (Logic in Computer Science)

9 Paper-and-Pencil Proof

10 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.

11 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).

12 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

13 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 54

감사합니다 Life is an exciting adventure...