All Articles

스크립트 언어, 컴파일 언어

[스크립트 언어란]

  • 컴파일 언어의 경우 수정이 빈번하다면 매번 컴파일(실행전 기계어 코드로, 자바는 바이트코드 형태 중간언어로 변환 후 해석, 실행함 - JVM) 해야함
  • 수정이 빈번한 때에는 실행할 때 코드를 한줄 한줄 읽어 대응하는 기계어 코드를 바로 실행하는 인터프리터 언어가 유리함
  • 스크립트 언어는 위에서 언급한 단점을 극복하기위해 나온 언어임

[대표적인 스크립트 언어]

  • javascript
  • python
  • php
  • ruby

[스크립트 언어의 특징]

  • 일반적으로 새로운 프로그램을 만들기보다 기존에 만들어진 프로그램에서 제어를 하기위해 사용됨
  • 프로그램 내에서 스크립트 언어 구동을 위해 지원함
  • 웹브라우저에서 구동이 지원되는 자바스크립트, 플래시를 제어하기위한 액션스크립트가 대표적
  • 스크립트(인터프리터 방식) 언어가 컴파일 언어보다 느림(JIT 컴파일 방식을 도입하여 실행속도가 크게 개선된 경우도 있음 : 자바스크립트, 액션스크립트)
  • 실행 되었을 때 에러를 발견…

[JIT 컴파일 방식이란]

  • 컴파일 방식에 비해 한줄 한줄 읽고 실행시키는 인터프리터 방식이 속도가 느림, 속도면에서 단점을 보완하기위해 사용하는 방식
  • 프로그램 내에서 반복 실행되는 부분에 대한 처리로 효율을 높이는 방식

[JIT 컴파일 방식 특징]

  • JIT 컴파일러는 두가지를 혼합한 방식
  • JIT 컴파일러는 실행시점에 기계어 코드를 생성하면서, 기계어 코드를 캐싱해두고 같은 함수가 여러번 불릴 때 캐싱해둔 기계어 코드를 실행하는 방식
  • 기본적으로 처음에 인터프리터 방식을 사용하고, 자주 사용되는 코드가 발견(함수 호출 빈도를 측정)되면 그부분에 대해서 JITC를 적용

[JIT 컴파일 방식을 지원하는 환경]

  • V8 엔진(nodejs)
  • 자바 가상머신

<출처>