4190.310 Programming Languages (Spring 2011)

강사: 정영범 Yungbum Jung 오학주 Hakjoo Oh
Programming Research Lab.
/CSE/Seoul National University

강의: 화/목 17:00 -18:15 @ 302동 106호

목표 Objectives

다양한 프로그래밍 언어들이 품고있는 공통된 원리들은 무엇인가? 현재의 프로그래밍 언어들은 얼마만큼 미개한가? 좀더 나아지기 위해서 필요한 것들은 무엇인가? 새로운 프로그래밍 환경을 효과적으로 운용할 수 있는 언어는 무엇인가? 이 강의에서는 이와같은 질문들에 대한 답을 익히거나, 좋은 답을 만들어내기 위해서 필요한 소양을 닦게 됩니다.

규정 Policy

숙제: 80%, 발표: 10%, 기타: 10%.
  • 성적은 절대평가입니다.
  • 프로그램 숙제가 베낀것으로 적발되면 숙제점수 모두 0점 처리됩니다. 연구실에서 개발한 프로그램 유사도를 자동으로 감별해주는 소프트웨어가 사용됩니다.

숙제 Homeworks

진도및 자료 Slides & Resources

Part 0 [0.pdf, 1.pdf, 2.pdf]
language, syntax, semantics
abstract syntax, concrete syntax, inductive definitions
logic systems, inference rules, inductions
Part I [3.pdf, 4.pdf, 5.pdf, 6.pdf]
imperative language: basic syntax, inference rules as semantics
scopes, environment
static/dynamic scoping, parameter passing
procedures, data structures
role of types, static/dynamic type system
memory leak, dangling pointer, garbage collection
translation, virtual machine
Part II [7.pdf,8.pdf,9.pdf, SM5.pdf, 10.pdf ,11.pdf ,12.pdf ,13.pdf ,14.pdf ,15.pdf ]
language model: lambda calculus
reduction strategies
high-order applicative language
safe type system, static type system, type discipline
let-polymorphic type system, parametric polymorphism, subtype system
type system as language design
data abstraction, modularity
translation, virtual machine
essence of object-oriented language, object, inheritance, subtype polymorphism
logic vs computation, curry-howard correspondence
program verification
overview, future issues
© Copyright 2009, 이 광근