Search Results for '교과서'

2 POSTS

  1. 2008.04.02 아마존에서 책이 도착했습니다! 2
  2. 2008.03.13 Programming Languages: Application and Interpretation
지난달 중순에 아마존에서 직접 주문한 보물들이 어제 도착했습니다.

Foundations of Object-Oriented Languages: Types and Semantics by Kim  B. Bruce

객체지향 언어 책입니다. 객체지향분석론이나 객체지향방법론이 아니라 객체지향 프로그래밍 언어의 이론적인 배경을 파헤치는 책으로 보시면 됩니다. 타입 이론, 람다 칼큘러스(lambda calculus)가 등장하고 SOOL(Simple Object-Oriented Language)이라는 간단한 객체지향 언어를 가정하고 이를 정형적으로 기술하면서 객체지향 언어의 핵심을 설명하고 있습니다.

Advanced Topics in Types and Programming Languages by Bejamin C. Pierece

PL 교과서로 유명한 Bejamin C. Pierce의 책입니다. 학교 복학하고 PL 수업 청강할 때 Types and Programming Languages by Benjamin C. Pierce를 교재로 썼는데 Advanced도 읽어보려고 마음만 먹고 있다가 이제야 구입했습니다. 이 책은 조금 더 깊이 있는 타입 이론을 다루는데, 특히 Dependent Types, Effect Types, Proof-Carrying Code 등의 주제에 관심을 가지고 볼 생각입니다. 후반부에 나오는 Reasoning 쪽은 아직 잘 모르겠고요.


회사일에 치여 PL 공부 안 한지가 너무 오래되서 요즘은 환기 차원에서 브라운 대학의 Shriram Krishnamurthi 교수가 쓴 Programming Languages: Application and Interpretation를 지하철 오가면서 틈틈이 보고 있습니다. 이 책은 대학에서 프로그래밍 언어 과목을 가르치면서 만든 프로그래밍 언어(PL) 교과서입니다. Pierce의 Types and Programming Languages처럼 무겁과 이론적인  설명을 피해 비교적 가벼운 접근 방법을 취하고 있습니다.


이 책에서 언급하지만 프로그래밍 언어는 크게 4가지로 나눠서 공부할 수 있습니다.

1. 문법(syntax)
2. 의미(semantics)
3. 라이브러리(library)
4. 용법(idioms)


1번 문법과 관련해서는 오토마타 형식 언어와 컴파일러의 파서 쪽에서 주로 다루고 있습니다. 3번과 4번은 각 언어 커뮤니티에서 방대한 정보를 제공하고 있고요. PL 이론서는 보통 1, 3, 4번은 과감히 생략하고 언어의 의미를 어떻게 정의할 것인가에 초점을 맞추고 있습니다. 이 책도 역시 프로그래밍 언어의 의미를 부여하고 검증(sound, complete)하는 방법에 대해 이야기합니다.

PL 이론서들은 주로 Operational Semantics, Denotational Semantics, Axiomatic Semantics 등으로 접근 방법을 달리하고 있습니다. 그나마 이해하기 쉬운 게 Opeational Sematnics인데, 입문자는 이 역시 이해하기가 어렵습니다. 이 책은 PL 입문자들을 위해 Operational Semantics에 접근하기 위해 먼저 간단한 인터프리터를 구현해 나가는 방법을 택하고 있습니다. 또한, Continuation Passing Style을 설명하면서 웹프로그래밍을 예로 드는 등 실제 프로그래밍과 연결 고리를 찾기 위해서 고심한 흔적도 보입니다.

너무 머리 아프지 않은 PL 입문서를 찾으신다면 권장해 드립니다. 물론 그런 후에도 Pierce 책은 필독입니다.