인터프리터, 컴파일러

Geunhyung Pyun·2023년 1월 4일
0
post-custom-banner

인터프리터(interpreter)

  • 프로그래밍 언어의 소스 코드를 바로 실행하는 환경 또는 프로그램
  • 고급 언어로 작성된 원시코드 명령어들을 한 번에 한 줄씩 읽어들여서 중간 형태로 번역한 후 실행한다.
  • 한 줄씩 번역하는 방식이기에 컴파일러에 비해 속도는 느리다.
  • 수정해서 실행시키면 끝이기에 프로그램 수정이 간단다.
  • MATLAB, Python이 대표적인 인터프리터 언어이다.

컴파일러(compiler)

  • 특정 프로그래밍 언어를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램
  • 보통은 고급 언어에서 저급 언어로 바꾸는 데 사용된다.
  • 원래의 코드인 소스 코드(원시 코드)를 목적 코드로 옮기는 과정을 컴파일이라고 한다.
  • 실용적인 면에서 컴파일하는 과정인 개선된 면이 있어야 한다는 조건이 있다.
  • 실행 단계는 다음과 같다.
    1. 구문 분석 : 소스 코드 파일을 읽어 문법요소 단위로 자르고 해석하여 추상 구문 트리를 생성한다. 이 단계에서 문법이 맞지 않는 경우 사용자에게 알려준다.
    2. 최적화 : 추상 구문 트리를 분석해 최적화를 수행한다. 상수 표현식 계산, 루프 풀기 등이 이 단계에서 수행된다.
    3. 코드 생성 : 최적화된 구문 트리로부터 목적 코드를 생성한다.
    4. 링킹 : 목적 코드가 기계어인 경우, 여러 라이브러리 목적 코드를 묶어 하나의 실행 파일을 생성해야 한다. 이 때 이 과정을 링커에 의해 수행된다.
  • 수정이 용이하지 않다는 단점이 있다. 수정 사항이 생길 경우 다시 컴파일을 해야 하기 때문에 큰 프로그램의 경우 많은 시간이 걸린다.
  • C, JAVA 등이 대표적으로 컴파일러를 쓰는 언어이다.
profile
개발자를 원하는 사람.
post-custom-banner

0개의 댓글