인터프리터 방식과 컴파일러 방식

Bam·2022년 4월 19일
0

CS

목록 보기
20/26
post-thumbnail

프로그래밍 언어로 코드를 작성하고 실행시키는 방식 중 가장 유명하고 대표적인 두 가지 방식에 대해서 소개해볼까 합니다.

인터프리터 방식

먼저, 인터프리터 방식을 소개해드리겠습니다.

인터프리터 방식은 프로그램을 실행할 때 인터프리터를 이용하여 코드를 한 줄 씩 읽어나가며 실행하는 방식입니다. 인터프리터 방식을 이용하는 고급 프로그래밍 언어로는 JavaScript, Python, SQL 등이 있습니다.

장점

인터프리터 방식의 장점은 다음과 같습니다.

  • 인터프리터를 이용하면 바로 읽어내기 때문에 프로그램의 이식성이 좋다.
  • 오류 발생 시 읽던 부분에서 멈추게 되므로 오류 발견이 쉬운편 이다.
  • 컴파일이라는 과정이 없기 때문에 오류에 대한 수정도 빠른편 이다.

개인적인 경험으로는 인터프리터 방식을 채택한 언어들이 스크립트 언어 위주다 보니까 배우기에 쉽다는 장점도 있는 것 같습니다. 다만, 배우기 쉽다는 것은 처음 입문해서 해보기 어렵지 않다는 거지 언어 자체가 쉽다는 것은 절대로 아닙니다.

단점

인터프리터 방식의 단점은 다음과 같습니다.

  • 실행 속도가 느리다.
  • 인터프리터를 요구로 한다.

컴파일러 방식

컴파일러 방식은 코드를 기계가 알아들을 수 있는 기계어로 번역하고, 실행하는 방식입니다. 더 정확히는 컴파일 과정을 거치는 방식을 의미하는데, 컴파일은 어떤 언어로 작성된 코드를 다른 언어(보통 어셈블리, 기계어. 고급 언어간 변환도 컴파일이라고 할 수 있습니다.)로 변환하는 과정입니다. 컴파일러 방식을 이용하는 언어는 C, C++, JAVA 등이 있습니다.

장점

컴파일러 방식의 장점은 다음과 같습니다.

  • 실행 속도가 빠르다.
  • 컴파일 이후 생성된 실행 결과물은 실행 속도가 아주 빠르다.

처음 접하게 되면, 바로바로 한 줄 씩 읽어내는 인터프리터가 더 빠른거아니에요? 라는 물음이 충분히 생길 수 있습니다.

인터프리터 방식 같은 경우, 소스 코드에서 한 줄을 받아와서 이것을 컴퓨터가 이해하도록 번역하고, 결과물을 보여줍니다. 하지만 그 결과를 따로 저장해두지 않기 때문에 실행할 때마다 인터프리터가 번역하고 실행하게 됩니다.
반면, 컴파일러 방식은 소스 코드를 통으로 컴파일 과정을 거쳐서 컴퓨터가 이해할 수 있는 언어로 된 목적 코드를 만들어냅니다. 따라서 재실행시 이 목적 코드만을 읽어내면되며, 목적 코드는 컴퓨터가 바로 이해할 수 있는 언어이기 때문에 결과적으로는 컴파일러 방식의 속도가 빠르다라고 할 수 있는 것 입니다.

단점

컴파일러 방식의 단점은 다음과 같습니다.

  • 오류 발견이 어렵다.
  • 기계에 종속적인 코드가 생성되므로, 기계가 달라지면 같은 코드를 새로 컴파일 해야한다.(코드 이식성이 낮다.)

0개의 댓글