-
Notifications
You must be signed in to change notification settings - Fork 0
/
part3.tex
30 lines (26 loc) · 1.68 KB
/
part3.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
\chapter{문법분석}\label{chap:parser}
이번 장에서는 Haskell로 프로그래밍의 기초를 가르치는
허튼\cite{Hutton2016pih2nd}의 교재에 수록된
``함수형 파서''(functional parser)에 내용을 바탕으로
재귀 하향(recursive decent) 파서 구현의 일종으로 해석할 수 있는
``파서 컴비네이터''(parser combinator)의 원리를 소개하고,
이를 활용해 프로그래밍언어의 구체적 문법을 분석하는 활용 사례를 공부한다.
좀더 구체적으로는 먼저 가장 단순한 세 종류의 가장 기본적인 파서를 소개하고,
이러한 기존의 파서를 조합하여 파서를 만들어내는 유용한 파서 조합 연산자들을
허튼의 교재에 나온 순서를 따라 (단, 2판에 추가된 모나드에 대한
내용은 제외하고) 소개한다. 그리고 이런 파서 컴비네이터를 활용하여
앞서 \ref{chap:FunArithEval}장에서 다룬 FAC언어의 구체적 문법에 대한
어휘분석(lexical ayansysis)과 문법분석(syntax analysis)을 시도한다.
어휘분석은 구체적 문법을 따라 작성된 문자열을 토큰열로 변환하며,
문법분석은 토큰열을 추상문법나무로 변환하는 과정이다.
이번 장의 내용을 따라가며 연습문제를 풀다 보면
어휘분석과 문법분석이라는 각기 다른 두 단계의 분석 과정을
파서 컴비네이터라는 일관된 방식을 통해 이해할 수 있게 될 것이다.
\newpage
\input{Parser}
\chapter{타입검사와 타입유추}\label{chap:TyChk}
\input{FACT}
\chapter{타입유추, 더 많이}\label{chap:TyInf}
\input{TyInf}
\chapter{타입유추, 더욱 더 많이}\label{chap:TyInfMore}
\input{TyInfMore}