컴파일언어, 인터프리터언어, 스크립트언어 개념 비교

Hwang Ji Eun·2023년 6월 11일

컴파일 언어: 반드시 기계어로 컴파일 되어야만 실행시킬 수 있는 언어

  • 소스 코드 파일을 실행파일, 라이브러리 등의 Object 파일로 바꾸는 작업을 컴파일이라고 한다. 코드에 문법적인 오류가 있으면(컴파일되지 않으면) 실행되지 않는다.
    cf. 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 산출물로 변환하는 과정을 빌드라고 하며, 빌드 단계에 컴파일이 포함된다.
    ex. Java의 경우 class 파일이 생성된다.
  • 컴파일 단계와 실행 단계가 분리되어 있으며, 컴파일은 단 한번 실행되고 실행은 컴파일 된 것을 실행만 하면 되므로 실행 속도가 빠르다.

인터프리터 언어: 컴파일러를 거쳐 기계어로 변환되지 않고 바로 실행되는 언어

  • 인터프리터가 한 줄씩 해석해서 바로 실행된다. 문법적인 오류가 있어도 실행은 시작된다.
  • 실행파일을 별도로 생성하지 않기 때문에 실행 시마다 인터프리트 과정이 반복 수행되어 실행 속도가 느리다.
구분컴파일 언어인터프리터 언어
번역컴파일러가 전체 번역인터프리터가 한 줄씩 번역 (바이트 코드로 변환)
속도번역 속도🔽실행 속도🔼번역 속도🔼실행 속도🔽
프로그램 저장DiskROM
메모리 할당⭕(목적 프로그램 생성)❌(즉시 실행)
예시C, C++, C#, JavaPython, JavaScript, Ruby

스크립트 언어는 응용프로그램을 제어하는 언어, 즉 언어의 사용처가 어플리케이션, SW인 언어를 말하는 것이다. 언어의 기계적 해석 방식의 차이로 컴파일 언어와 인터프리터 언어를 구분하는 것과는 다른 개념.
ex. JavaScript는 웹 브라우저 위에서 웹 브라우저를 제어하는 언어이므로 스크립트 언어이자, 인터프리터가 한 줄씩 번역해 실행하는 인터프리터 언어이다.

profile
기술(technology)을 기술(discription)하자.

0개의 댓글