본문 바로가기
공부

프로그램의 컴파일 과정

by Coding_mon 2020. 9. 11.

고급언어 (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

댓글