ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴파일러와 인터프리터는 무엇인가
    CS지식/운영체제 2021. 6. 15. 22:16

    컴파일러와 인터프리터는 대표적인 언어 번역 프로그램이다.

    그러면 무슨 언어를 어떻게 번역한다는 것일까?

     

    우리는 코딩을 할 때 흔히 알고 있는 C언어, JAVA, Python 등 프로그래밍 언어를 사용한다.

    이러한 프로그래밍 언어는 사람들이 보았을 때에는 이해하기 쉽지만 0과 1밖에 모르는 컴퓨터에게는 너무나도 어렵다.

    그래서 우리가 쓴 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 번역하는 작업이 필요하고

    이러한 작업을 하는 것이 컴파일러인터프리터이다.

     

    컴파일러는 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역하여 목적 프로그램으로 만든 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성하여 실행된다.

    인터프리터목적 프로그램은 생성되지 않고 코드를 한 줄씩 읽어 들여 기계어로 번역한 후 실행한다.

    a = 10
    b = 5
    sum = a + b
    print(a)
    print(b)
    print(sum)
    

    즉, 위의 코드를 보면 컴퍼일러가 언어 번역 프로그램이라면 첫 번째줄부터 마지막줄까지 모두 기계어로 번역하고 한꺼번에 실행되는 것이다.

    인터프리터는 한줄씩, 첫 번째 줄(a=10)을 번역하고 실행하고 두 번째 줄(b=10)을 번역하고 실행하고 하면서 마지막 줄까지 전역하고 실행하는 것을 말한다.

     

     

     

    그러면 컴파일러와 인터프리터의 차이점은 무엇일까?

    위 설명을 보면 컴퍼일러는 한꺼번에 소스코드가 번역된 후 실행되고 인터프리터는 한 줄씩 번역되고 실행되는 것이 차이점으로 보인다.

    이로 인해 컴파일러는 번역하는데 인터프리터보다 시간이 오래 걸리지만 실행시간은 인터프리터보다 빠르다.

    또한, 컴파일러는 전체 소스코드를 변환 한 뒤 에러를 보고하지만 인터프리터는 각 행 마다 실행하는 도중 에러가 보고되면 이후 작성된 코드를 살펴보지 않는다.

    이러한 차이점 말고 컴파일러를 사용하는 프로그래밍 언어와 인터프리터를 사용하는 프로그래밍 언어에서의 차이점도 존재한다.

     

    컴파일러를 사용하는 프로그래밍 언어는 오류를 찾고 코드를 최적화하기 위해 반드시 사용할 변수를 먼저 선언한 후 코드를 작성한다.

    하지만 인터프리터 방식의 언어는 변수를 미리 선언할 필요가 없다.

    그 이유는 컴파일러는 실행 전 소스코드를 점검하여 오류를 수정하고 필요 없는 부분을 정리하여 최적화된 실행 파일을 만들기 때문이다.

    'CS지식 > 운영체제' 카테고리의 다른 글

    페이징 기법이란 무엇인가  (0) 2021.06.21
    가상 메모리란 무엇인가  (0) 2021.06.18
    메모리 주소란 무엇인가  (0) 2021.06.12
    교착 상태란 무엇인가  (0) 2021.06.09
    프로세스 간 통신(IPC)란 무엇인가  (0) 2021.06.06

    댓글

Designed by Tistory.