컴파일러 구성

컴파일러 구성()은 컴퓨터 과학의 한 영역으로서 프로그래밍 언어들과 그들과 관련된 컴파일러들을 개발하는 것의 이론과 실행을 다룬다.

이론적인 부분은 주로 프로그래밍 언어들의 구문, 문법 그리고 의미론과 관련있다. 이것은 컴퓨터 과학 영역에서 언어학과 큰 관련이 있다고 볼 수 있다.

실천적인 부분은 언어를 위한 컴파일러의 실제 구현을 다룬다.

어휘 분석 
컴파일러의 첫 번째 단계는 어휘 분석이라고 불린다. 이 단계는 단어들을 그룹화 해서 소스 프로그램을 어휘소라고 불리는 의미있는 순서들로 만드는 것과 관련된다. 어휘소는 "정수", "식별자" 같은 토큰 클래스에 속한다. <토큰 클래스, 속성 값> 형태의 토큰은 각 어휘소를 위해서 만들어진다. 어휘 분석은 또한 스캐닝이라고도 불린다.

구문 분석 
컴파일러를 설계하는 두 번째 단계는 구문 분석이다. 어휘 분석기의 결과는 토큰들의 문법적 구조를 보여주는 표현을 생성하는데 사용된다. 구문 분석은 또한 파싱이라고도 불린다.

의미 분석 
주요 문서: 의미 분석

의미 분석은 컴파일러 프론트 엔드의 마지막 단계이다. 이 단계 동안, 컴파일러는 의미 규칙들을 파서에 의해 구축된 구문 트리에 적용한다. 이 단계에서의 작업들은 컴파일러의 설계에 따라 다르지만, 일반적으로 형 검사, 범위 검사 그리고 객체 바인딩을 포함한다. 코드 생성을 위한 준비에서 심볼 테이블들 또한 구문 분석 때 만들어진다. 몇몇 경우들에서, 의미 분석은 구문 분석과 함께 수행된다.

역사

하위 분야 
 구문 분석
 프로그램 분석
 프로그램 변형
 컴파일러 또는 프로그램 최적화
 코드 생성

같이 보기 
 Functional compiler
 Programming language implementation
 Programming language theory
  A compiler construction book available for download in Wikipedia.

더 읽어보기 
 Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools.
 Michael Wolfe. High-Performance Compilers for Parallel Computing.  ISBN 978-0-8053-2730-4
 David Gries. Compiler Construction for Digital Computers. John Wiley 1971. ISBN 0-471-32771-9.
 F.R.A.Hopgood. Compiling Techniques. MacDonald/American Elsevier 1969. ISBN 0-356-02474-1.

각주

외부 링크 
 Let's Build a Compiler, by Jack Crenshaw, A tutorial on compiler construction.

컴파일러 구성