4190.310 Programming Languages (Fall 2017)

이광근 Kwangkeun Yi
소프트웨어무결점 연구센터/ 프로그래밍 연구실 /CSE/Seoul National University

강의: 화/목 14:00-15:15 @ 302동 208호
면담: 화/목 15:15-15:45 @ 강의실 주변

목표 Objectives

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

규정 Policy

숙제: 90%, 기타: 10%.
  • 성적은 절대평가입니다.
  • 프로그램 숙제가 베낀것으로 적발되면 숙제점수 모두 0점 처리됩니다. 프로그램이 얼마만큼 비슷한지를 자동으로 감별해주는 소프트웨어가 사용됩니다.

숙제 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
[5분 꼭지: 이런 새로움] New
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 [origin-of-turing-machine.pdf, 5-0.ppt, 5-1.ppt, 5-1simple-type.pdf, 5-1poly-type.pdf, 5-1oo.pdf, 5-2curryhoward.pdf, 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 2012, 이 광근