3. 강의목표
This course covers the basics of the theory of programming languages. We will begin with an introduction to functional programming and the mathematical foundation for programming language theory, and then proceed to the techniques for formally defining a programming language such as abstract syntax, type system, and operational semantics. We will investigate important features found in modern programming languges and their implementation issues. This course places a strong emphasis on the role of type theory in modern programming languages. In order to complement our theoretical study with practical programming, we will learn a higher-order functional language in the ML family.
4. 강의선수/수강필수사항
None, but Discrete Mathematics, Data Structure, and Algorithm are recommended.
5. 성적평가
- Assignments (60%)
- Midterm (20%)
- Final (20%)
- Note: The weights are subject to change.
7. 참고문헌 및 자료
- Course Notes (by Sungwoo Park)
- Types and Programming Languages (by Benjamin Pierce)
8. 강의진도계획
- Functional Programming
- Inductive Definitions
- λ-Calculus
- Simply-Typed λ-Calculus + Its Extensions
- Evaluation Contexts + Environments
----------------------------------------------------------
- Mutable References
- Subtyping + Recursive Types
- Polymorphism
- Advanced Topics (Denotational Semantics, Hoare Logic, Curry-Howard Isomorphism, etc.)
9. 수업운영
- 이론 강의
- 프로그래밍 과제
11. 장애학생에 대한 학습지원 사항
- 수강 관련: 문자 통역(청각), 교과목 보조(발달), 노트필기(전 유형) 등
- 시험 관련: 시험시간 연장(필요시 전 유형), 시험지 확대 복사(시각) 등
- 기타 추가 요청사항 발생 시 장애학생지원센터(279-2434)로 요청