취미와 밥줄사이

스크립트 언어와 컴파일 언어의 차이 본문

카테고리 없음

스크립트 언어와 컴파일 언어의 차이

취미와 밥줄사이 2021. 11. 21. 00:02

컴파일 언어와 스크립트 언어의 차이

  • C, C++, Java 같은 컴파일 언어는 코드를 작성한 후 컴파일을 하면, 컴파일러에 의해 기계어로 변환된 파일이 생성되고 컴퓨터는 그 파일을 실행합니다.
  • Python과 JavaScript와 같은 스크립트 언어는 별도의 파일 생성 없이 소스 코드가 작성될 때마다 인터프리터가 해당 코드를 기계어로 번역하고 실행합니다.
  • 컴파일 언어는 이미 기계어로 번역된 파일을 컴퓨터가 실행하므로 스크립트 언어에 비해 빠르고 소스코드에 문법적 오류가 있으면 컴파일 에러를 발생시켜 디버깅이 수월합니다.
  • 하지만 일반적으로 문법적 제약이 많아 작성이 비교적 어렵고, 운영체제마다 사용하는 기계어가 다르기 때문에 운영체제에 따라 작업을 각각 다르게 해줘야 하는 단점이 있습니다.
  • 스크립트 언어는 컴퓨터가 코드를 실행하는 과정에서 소스 코드를 기계어로 번역하는 과정이 포함되어 있으므로 컴파일 언어에 비해 느립니다.
  • 문법적 오류가 있든 없든 일단 실행되기 떄문에 디버깅이 비교적 어렵습니다. 
  • 하지만 문법적 제약이 비교적 적어 작성이 비교적 쉽고, 운영체제를 신경 쓸 필요없이 한 번만 작성해 놓으면 된다는 장점이 있습니다.
  • 실행단계의 차이
    • 컴파일 언어는 '컴파일러' 단계가 필요하고
    • 인터프리터 언어는 별도의 '컴파일러' 과정이 필요하지 않다.
  • 생산 속도의 차이
    • 컴파일 언어의 경우 '컴파일' 과정이 들어가기 때문에 인터프리터 언어보다 생산 속도가 느리다.
    • 인터프리터 언어는 과정이 단순하기 때문에 생산 속도가 빠르다.
  • 소스코드 작성 제약사항
    • 컴파일형 언어에는 소스코드 작성을 위한 제약사항이 스크립트 언어보다 더 많다.
    • 컴파일 언어는 사용해야 하는 변수의 자료에 대해서 명확하게 알아야 하며 
    • 각종 문법에 따른 제약 사항들도 명확히 이해해야 한다.
  • 디버깅
    • 인터프리터 언어는 간편한 만큼 잃는 것도 있다.
    • 소스 코드가 실행되기 전까지는 소스코드의 버그를 인지하는 것이 어렵다.
    • 컴파일 언어에 비해 오류 인지 시점이 늦다.
    • 컴파일 언어가 디버깅 작업이 훨씬 수월한다.
  • 실행 속도
    • 생산 속도는 인터프리터 언어가 좋지만 실행 속도는 컴파일 언어가 훨씬 더 빠르다.
    • 컴파일을 한 뒤에 생성된 파일에 의해 프로그램이 실행되기 때문에 번역기에 의해 번역이 되고 실행하는 인터프리터 언어에 비해 훨씬 빠르다.
    • 실행 속도는 C, C++ -> Java -> Python 순으로 느려집니다.
    • 연산 속도나 실행 속도에 민감한 프로그램은 인터프리터 언어로 개발하지 않습니다.

컴파일 언어

  • 소스코드를 목적코드로 옮기는 것
  • 목적코드는 컴파일러나 소스코드 파일을 컴파일 해서 생성하는 파일
  • 번역과 실행이 따로 이루어진다.
  • 컴파일러(compiler): 번역기라고 불리면 특정 프로그래밍 언어를 다른 언어로 옮기는 프로그램.
  • 컴파일이란 컴파일 언어로 부터 작성된 코드에서 실행파일을 생성하는 것입니다.

출처:https://hoon26.tistory.com/21

 

  • 컴파일을 하게 되면 실행가능한 피을(프로그램)이 생성된다.

인터프리터 언어

  • 소스코드를 바로 실행하는 컴퓨터 프로그램 또는 환경
  • 소스코드를 한줄 한줄씩 읽어들이면서 실행하는 프로그램을 뜻함
  • 번역과 실행이 동시에 일어남

출처:https://hoon26.tistory.com/21

  • 인터프리터는 별도의 실행파일이 존재하지 않느낟.
  • 빌드 과정이란?
    • 빌드란, 소스파일을 실행파일로 생성하는 과정
    • 과정구조: [고급언어 --> 변환 -- > 기계어]
    • 인터프리터 언어는 빌드과정 없이 고급언어에서 한 줄씩 읽어 실행하는 반면
    • 컴파일러 언어의 경우 .class 파일 등과 같이 변환하여 실행을 한다.

 

 

 

REFERENCE

https://ryusm.tistory.com/105

 

스크립트 언어와 컴파일 언어의 차이

컴파일 언어와 스크립트 언어의 차이 우리가 작성한 코드를 컴퓨터가 알아듣기 위해서는 프로그래밍 언어를 기계어(0, 1)로 번역하는 과정이 필요한데, 그 과정을 언어에 따라 컴파일(compile) 혹

ryusm.tistory.com

https://hoon26.tistory.com/21

 

컴파일 언어와 인터프리터 언어

* 컴파일 언어란? - 소스코드를 목적코드로 옮기는 것. (여기서 말하는 목적코드는 컴파일러나 소스코드 파일을 컴파일 해서 생성하는 파일을 말한다.) -번역과 실행이 따로 이루어진다. * Compiler(

hoon26.tistory.com

https://www.computerhope.com/jargon/c/compile.htm

 

What is Compile?

Computer dictionary definition for what compile means including related links, information, and terms.

www.computerhope.com