CSE-321 Programming LanguagesOverview 박성우 POSTECH February 20, 2018
Course Outline • Topics to be covered: • mathematical foundation of programming languages • theory of programming languages • type theory • designing programming languages • implementing programming languages
CSE-321 Programming Langauges • Course webpagehttp://pl.postech.ac.kr/~gla/cs321
Grading • Assignments 60%Midterm 20%Final 20% • 8+ programming assignments • To get a grade of A, you have to complete all assignments. • Missing 1/3 of the lectures gets you the final grade of F.
Discussion Board • telnet pl.postech.ac.kr, board 321 • Create an ID to ask questions.
Anonymous Feedback • http://pl.postech.ac.kr/~gla/feedback/
Objective Caml (OCaml) • Programming language for your assignments • We will use OCaml 4.01. • Read ‘The core language’ and ‘The module system’ sections in the OCaml manual.
No Cheating • Read the document on the disciplinary policy. • 2016: 2 students cheated (out of 40 students) • We have developed clonechecker for OCaml. • We will check all your programs at the end of the semester. • Cheating will get you a grade of F.
programming.postech.ac.kr • Linux machine for your assignments. • OCaml 4.01 is already installed. • Use your Hemos ID to log in. • Contact Hemos Team to request an ID. • Your handin directory is located at: /home/class/cs321/handin/<your Hemos ID>
Assignments • All assignments will be out soon. • Finish the assignments at your pace. • Details of the instruction are all in the handout. • If you don't find your handin directory, email email@example.com. • You may program on Windows or Linux, but make sure that your program compiles! • Otherwise your program will not be graded.
Why Type Theory? • Type: 데이터의 종류를 요약 • 타입 이론(type theory)에서 발전 • parametric polymorphism, let-polymorphism • subtyping with covariance and contra-variance • F-bounded polymorphism • higher-order kind, type-class • generalized ADT • dependent type • first-class module, functor • 일반 프로그래밍 언어에서 점차적으로 도입