컴파일러 구성

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

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

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

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

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

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

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

 역사 

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

 추가 문헌 
 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.

분류:컴파일러 구성