본문 바로가기
dev, tech

컴파일러 구조

by 구띵 2010. 2. 2.

구성

 

프론트엔드(front end)

- 프로그램 텍스트를 해석해서 구문과 프로그래밍 언어 준수 여부 확인, 컴파일러의 중간 표현으로 변환하는 역할 수행

- 단계 : 어휘 분석(lexical analysis) -> 스캐닝(scanning)

- 문맥상 잘못된 토큰이 발견되면 컴파일러는 에러를 보고

 

(중간 표현(intermediate representation))

- 컴파일러가 입력 받은 하이레벨의 소스 코드를 검사하고 로우레벨로 변환 시키기 위해 이용하는 중간 형태의 표현

 

최적화기(optimizer)

- 원래 의미를 유지시키면서 프로그램 향상

- 예) 반복문의 재배치, 잉여 제거(제거 가능한 코드를 찾아내서 제거) 등

 

백엔드(back end) 또는 코드 생성기(code generator)

- 해당 플랫폼에 맞는 바이너리 생성(컴파일 과정에서 생성된 중간 단계의 코드로부터 특정 대상 코드 생성)

- (프로그램 가독성에 직접 영향을 미치는 최적화 작업도 함께 이뤄짐)

- 특정 플랫폼에 대한 최적화 수행을 위한 충분한 정보를 가지도록 함

 

 

 

 

 

'dev, tech' 카테고리의 다른 글

헤더 파일 찾는 알고리즘  (0) 2010.11.08
volatile 키워드  (0) 2010.10.01
예약어 FAR  (0) 2009.12.18
자료형 최대값, 최소값  (0) 2009.12.17
static을 이해하자  (0) 2009.12.15

댓글