Tiny Finger Point Hand With Heart
본문 바로가기
1일1CS

31. 컴파일러란?

by yoondii 2023. 1. 6.
728x90
반응형

컴파일러, compiler

명사컴퓨터
인간의 언어에 가까운 고급 언어로 작성된 원시 프로그램을 입력으로 받아
기계어(機械語)로 된 목적 프로그램을 출력하기 위해 사용되는 언어 번역 프로그램

출처-Oxford Languages


> 컴파일러 실행 단계

  1. 구문분석 : 소스 코드 파일을 읽어 추상 구문 트리 생성, 문법에 맞지 않는 소스 코드는 사용자에게 알림
  2. 최적화 : 추상 구문 트리 분석 및 퇴적화.
  3. 코드 생성 : 목적 코드 생성(기계어 번역의 경우 레지스터 할당, 연산 순서 바꾸기 등)
  4. 링킹 : 기계어 번역의 경우, 여러 라이브러리의 목적 코드를 묶어 하나의 실행파일 생성. -일부는 이과정을 컴파일 과정에서 제외함.

> 컴파일 과정

  1. 전처리기(Preprocessor) : #이 붙은 전처리기 구문을 처리.
  2. 컴파일러로 컴파일
  3. 어셈블러(Assembler) : 완전히 기계어로 바꿔주는 역할
  4. 링커(Linker) : 여러 개의 오브젝트 파일을 하나로 합치거나, 라이브러리를 합침

>컴파일러의 필수 조건

  1. 컴파일러는 옮김의 과정에서 프로그램의 뜻을 보존하여야 함. 즉, 입력받은 프로그램의 의미를 충실히 따라야 함
  2. 컴파일러는 입력으로 들어온 프로그램을 실용적으로 개선해야 함

>컴파일러의 기능

  1. 고급언어를 직접 기계어 코드로 변환
  2. 자바의 경우 바이트 코드로 변환한다. 중간단계의 코드를 생성하고 이를 해석하여 실행, 자바는 마이크로프로세서에서 실행되도록 개발되었기 때문.
  3. C/C++의 경우 직접 기계어 코드로 변환
  4. 마이크로프로세서는 각각 다른 기계어 코드를 가지고 있기에, 다른 기계어 코드를 생성해야함. 즉, 마이크로프로세서에 맞는 컴파일러를 사용해야함

 

>컴파일러 종류

 


Compile
컴파일(Compile)은 주어진 language로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 프로세스

 

 

출처- https://developer.mozilla.org/

출처- https://yanacoding.tistory.com/

728x90
반응형

댓글