본문 바로가기
잡동사니/컴파일러

[컴파일러 구조와 원리] - 컴파일의 4단계

by 2KB 2015. 12. 31.

컴파일의 4단계

 

 

1.구문해석

 

소스코드 해석 -> 파즈(Parse) 또는 구문 해석(Syntax analyzing)

소스코드 해석기 -> 파서(parser) 또는 구문 해석기(syntax analyzer)

 

컴퓨터가 이해하기 쉬운 형식 -> 구문 트리(syntax tree)

ex. x=1, y=2, 3*(x+y)

 

 

2. 의미해석

로컬 변수 글로벌 변수 구별

변수 선언 및 참조 구별

변수식 타입 확인 (형 변환)

변수 초기화 확인

리턴값 유효성 확인

 

3. 중간표현 생성

여러 종류의 언어나 CPU에 대응하는 컴파일러의 경우 중간표현을 가진다.

리눅스 GCC -> RTL(Register Transfer Language)

소스코드 해석에서 중간표현까지의 과정을 컴파일러의 프런트-엔드(front-end)라고 한다.

 

4. 코드생성

중간표현을 어셈블리 언어로 변환

코드 생성(Code generation) , 코드 생성 프로그램 모듈은 코드 제네레이터(Code generator)

프로그램의 의미를 바꾸지 않고 변환 ( C or Java => Assemble Language)

 

최적화

코드를 최적화(optimization) 단계가 포함되어 있다.

추상 구문 트리 최적화중간 코드 최적화기계어 변환 최적화라이브러리 코드 최적화.