방송대/컴파일러구성
1장 컴파일러구성
피클s
2022. 8. 23. 15:05
목차
번역기
인간이 이해하기 쉽게 만들어진 고급언어를 기계가 인식할 수 있는 저급 언어로 번역해주는 프로그램
- 어셈블러 : 어셈블러 언어를 기계어로 번역
- 컴파일러 : 고급언어를 기계어로 번역 ex) java, c, go, ...
- 인터프리터 : 고급언어를 실시간으로 번역 ex) ruby, python, ...
- 프리프로세서 : 고급언어를 고급언어로 번역 ex) typescript -> javascript
컴파일러의 구성
어휘분석 | 어휘의 문법을 검사해서 토큰을 생성 | 문자열 | 토큰 |
구문분석 | 올바른 문장구조를 가지고 있는지 분석 | 토큰 | 구문트리 |
의미분석 | 구문트리로 연산자, 피연산자의 관계 등 유형검사를 하고 구문을 실행할 수 있도록 환경조성 | 구문트리 | 구문트리 |
중간코드 생성 | 구문트리를 이용하여 코드 생성. | 구문트리 | 중간코드 |
최적화 | 기억공간, 실행시간 등을 최적화한다. | 중간코드 | 중간코드 |
목적코드 생성 | 최적화 코드 그대로 레지스터나 기억장소 위치를 정해서 목적코드 생성 | 중간코드 | 목적코드 |