4190.310 Programming Languages (Fall 2010)

이광근 Kwangkeun Yi
Programming Research Lab.
/CSE/Seoul National University

강의: 월/수 15:30-16:50 @ 302동 106호
면담: 월/수 16:50-17:30 @ 302동 428호

목표 Objectives

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

규정 Policy

숙제: 90%, 기타: 10%.
  • 성적은 절대평가입니다.
  • 프로그램 숙제가 베낀것으로 적발되면 숙제점수 모두 0점 처리됩니다. 프로그램이 얼마만큼 비슷한지를 자동으로 감별해주는 소프트웨어가 사용됩니다.
  • 프로그램 숙제에서 "pair programming"이 허용되는 경우가 있습니다. 2명이 1조가 되어 제출 가능합니다. 조 편성은 교수가 정합니다.

숙제 Homeworks

진도및 자료 Slides & Resources

Part 0 [1.ppt, 2.ppt, 2-1.pdf ]
language, syntax, semantics
abstract syntax, concrete syntax, inductive definitions
logic systems, inference rules, inductions
Part I [3.ppt, 3-1.pdf, 4-1.ppt, 4-2.ppt, 4-3.ppt]
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 [5-0.ppt, 5-1.ppt, 5-1simple-type.pdf, 5-1poly-type.pdf, 5-1oo-subtype.pdf New!, 5-2curryhoward.pdf New!, 5-2.ppt, 5-3.ppt ]
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
meta programming, multi-staged programming
overview, future issues

읽을거리 Readings

  Part I Part II

관련 코스 Similar Courses

© Copyright 2009, 이 광근