CS

컴파일러 & 인터프리터

SeaPlus 2021. 7. 1. 16:35

[컴파일러]

 

특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램.

 

원래의 문서를 소스코드’, ‘원시코드라고 부르고 출력된 문서를 목적코드라고 부른다.

=>  원시코드에서 목적코드  변환하는 과정을 컴파일 이라 한다.

 

소스 코드를 컴파일 하는 이유는 대부분 사람에게 이해하기 쉬운 형태의 고수준 언어(c언어, java …)로부터 컴퓨터가 실행 가능한 저수준 언어(어셈블리어, 기계어) 만들기 위해서 이다.

 

특징:

1. 컴파일러는 명령들을 한번에 읽고 처리한다.
2. 초기 컴파일과정이 오래걸리고 메모리도 많이 차지한다.
3. 컴파일이 완료된 이후에는 프로그램 실행이 빠르고 더이상 변환하지 않아도 되기때문에 효율적이다.

 

 

 

 

[인터프리터]

 

 

 소스코드 바로 실행하는 컴퓨터 프로그램 또는 환경을 의미 

=> 원시코드기계어 번역하는 컴파일러와 대비된다.

 

이중 한가지 기능만 충족되어도 인터프리터이다.

1. 소스 코드를 직접 실행한다.

2. 소스 코드를 효율적인 다른 중간 코드로 변환하고, 변환한 것을 바로 실행한다.

3. 인터프리터 시스템의 일부인 컴파일러가 만든, 미리 컴파일 저장코드 실행을 호출

 

인터프리터는 고급언어 작성된 원시코드 명령어들을 한번에 줄씩 읽어들여서 실행하는 프로그램이다.

인터프리터는 고급 명령어들을 중간 형태로 번역한 다음, 그것을 실행한다.

인터프리터에 기반해 이미 만들어진 프로그램을 제어하기 위한 용도로 사용되는 언어가 "스크립트 언어"이다.

 

 

특징:

1. 코드를 한줄 한줄 읽어가며 즉시 검사하고 처리하는 방식
2. 한문장씩 처리하다보니 속도가 컴파일러에 비해 느리다.
3. 잘못된 코드 작성시 바로바로 수정할수 있다는 장점이 있다.
4. 기계어 명령어 들이 만들어 지는 컴파일 단계를 거칠 필요가 없다. (프로그램 테스트 단계에 유용)

 

 

 

# 컴파일러와 인터프리터의 차이점

  컴파일러 인터프리터
번역 단위 전체 한줄씩
실행 속도 빠름 느림
번역 속도 느림 빠름
목적 프로그램 생성함 생성하지 않음
메모리 할당 목적 프로그램 생성시 사용 사용 안함

 

(참고 : https://m.blog.naver.com/zosl1004/221242373322 )