Post

CS - 컴파일러, 인터프리터, JIT 컴파일러에 대해 알아보자.

CS - 컴파일러, 인터프리터, JIT 컴파일러에 대해 알아보자.

컴파일러

코드 전체를 한번에 기계어로 변환한 후 실행한다.

특징

  • 코드를 수정할 경우 다시 컴파일 후 실행해야함.
  • 모든 코드를 한번에 기계어로 변환하기 때문에 초기 시작 시간이 조금 걸릴 수 있음.

대표적인 컴파일러를 사용하는 언어

  • C
  • C++
  • Rust

인터프리터

컴파일러 방식과는 다르게 컴파일 과정 없이 프로그램이 실행 되면 인터프리터가 명령 단위로 해석해가면서 실행시킨다.

특징

  • 코드를 수정하더라도 컴파일러와는 다르게 다시 컴파일할 필요 없이 바로 실행이 가능함.
  • 초기 시작 시간은 컴파일러보다 빠르지만, 해석하는 코드의 양이 많아질 경우 컴파일러 방식보다 효율이 떨어질 수 있음.

대표적인 인터프리터를 사용하는 언어

  • Python

JIT(Just In Time) 컴파일러

인터프리터의 장점과 컴파일러의 장점들을 모두 가져온 컴파일러로, 초기엔 인터프리터 또는 간단한 컴파일로 실행을 시작하며, 자주 실행되는 코드(핫스팟)은 런타임 중 동적으로 기계어로 변환해준다.

대표적인 JIT 컴파일러를 사용하는 언어

  • Java

단점

  • 인터프리터로 동작하지만 런타임 중 핫스팟이 생기면 기계어로 변환하기 때문에 인터프리터 방식보다 메모리 사용량이 더 많음.
This post is licensed under CC BY 4.0 by the author.