본문으로 이동

컴파일러 구성

위키백과, 우리 모두의 백과사전.

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

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

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

어휘 분석[편집]

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

구문 분석[편집]

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

의미 분석[편집]

주요 문서: 의미 분석

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

역사[편집]

하위 분야[편집]

추가 문헌[편집]

  • 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.

각주[편집]

  1. Aho, Alfred V.; Lam, Monica S.; Sethi, Ravi; Ullman, Jeffrey D. (1986). 《Compilers: Principles, Techniques, and Tools (2nd Edition)》. Pearson. ISBN 0-321-48681-1. 
  2. Watt, David (2000). 《Programming Language Processors in Java》. Prentice Hall. ISBN 0130257869. 

외부 링크[편집]