고급언어 (C++, Java, Python..)등으로 작성된 프로그램은 컴퓨터가 바로 인식해서 실행 할 수 없다.
따라서 고급언어로 작성된 프로그램은 컴퓨터가 인식 할 수 있는 형식으로 변환하는 과정을 거쳐야 한다.
컴파일 과정 (Compile)
- 고급언어로 작성된 프로그램을 컴퓨터가 바로 실행 할 수 있는 프로그램으로 변환하는 기법을 의미하며
컴파일을 하는 프로그램을 컴파일러(Compiler)라고 한다. ex) C의 컴파일러 GCC
컴파일 기법은 번역이 완료되는 즉시 빠르게 프로그램을 실행 시킬 수 있는 장점이 있다.
과정을 살펴보면 처음 고급언어로 작성된 프로그램을 원시 프로그램 (Source Program)이라 하고
컴파일의 결과로 생성되는 기계어 프로그램을 목적 프로그램 (Object Program)이라고 한다.
컴파일의 단계를 세부적으로 나누어 본다면
- 어휘 분석 단계
- 구문 분석 단계
- 중간코드 생성 단계
- 최적화 단계
- 코드생성 단계
- 목적 프로그램 생성
생성 단계를 제외한 총 5가지의 단계로 구성되어 컴파일을 진행한다.
각 단계에 대한 간단한 설명으로는
- 어휘 분석 단계
- 원시프로그램을 토큰(Token)이라는 단위로 나누고 관련된 정보를 다음단계로 전달한다.
ex) i = 3 일때 'i','=','3'으로 나눈 후 전달하는 단계 - 구문 분석 단계
- 어휘 분석 단계에서 전달받은 토큰들이 문법적으로 옳은지 검사를 하고
문법상의 오류가 없다면 '파스 트리' 구조를 생성한다. - 중간코드 생성 단계 (ex : 어셈블리어)
- 완전한 기계어는 아니지만 기계어에 가까운 중간 코드로 된 프로그램을 생성한다.
- 이 과정에서 문법적인 오류가 아닌 의미적인 오류를 검사하게 된다. - 최적화 단계
- 중간코드에서 불필요한 코드를 제거하거나 더 효율적인 코드로 개선하여 실행속도를 빠르게 한다. - 프로그램 생성
- 최적화된 중간코드로 부터 컴퓨터가 인식할수 있는 프로그램을 만들어 낸다. 끝
'공부' 카테고리의 다른 글
소프트웨어공학 (0) | 2021.03.03 |
---|---|
프로세스 (0) | 2020.10.15 |
인터프리터 프로그래밍 해석기법, 파이썬 (0) | 2020.09.11 |
프로그래밍 언어의 설계 원칙 (0) | 2020.09.11 |
프로그래밍 언어란 (0) | 2020.09.11 |
댓글