ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴파일러 언어 vs 인터프리터 언어
    컴퓨터/개념 2021. 1. 18. 23:56

    source : 이웅모, 자바스크립트 Deep Dive

    p.14

    * 컴파일러 언어

    - 코드가 실행되기 전 단계인 컴파일 타임에 소스코드 전체를 한번에 머신 코드로 변환한 후 실행한다.

    note: 머신 코드란?

    CPU가 바로 실행할 수 있는 기계어

    - 실행 파일을 생성한다

    - 컴파일 단계와 실행 단계가 분리되어 있다.

    명시적인 컴파일 단계를 거치고, 명시적으로 실행 파일을 실행한다.

    - 실행에 앞서 컴파일은 단 한번 수행된다.

    - 컴파일과 실행 단계가 분리되어 있으므로 코드 실행 속도가 빠르다.

     

    * 인터프리터 언어

    - 코드가 실행되는 단계인 런타임에 문 단위로 한 줄씩 중간코드인 바이트코드로 변환한 후 실행한다.

    => 장점 : 동적 기능 지원

    => 단점 : 실행 속도가 느리다

    note: 바이트코드란?

    특정한 하드웨어가 아니라 가상 머신에서 실행하도록 만든 바이너리 코드

    - 실행 파일을 생성하지 않는다.

    - 인터프리터 단계와 실행 단계가 분리되어 있지 않다.

    인터프리터는 한 줄씩 바이트코드로 변환하고 즉시 실행한다.

    - 코드가 실행될 때마다 인터프리트 과정이 반복 수행된다.

    - 인터프리트 단계와 실행 단계가 분리되어 있지 않고 반복 수행되므로 코드 실행 속도가 비교적 느리다.

     

    *  Script 

    A script is a program or sequence of instructions that is interpreted or carried out by another program rather than by the computer processor(as a compiled program is ).

    In general, script languages are easier and faster to code in than the more structured and compiled languages such as C and C++. However, a script takes longer to run than a compiled program since each instruction is being handled by another program first ( requiring additional instructions) rather than directly by the basic instruction processor.

    https://whatis.techtarget.com/definition/script

     

    * 자바스크립트는 일반적으로 인터프리터 언어로 구분한다.

    런타임에 컴파일(일부 소스 컴파일)되며 실행파일이 생성되지 않고 인터프리터의 도움 없이 실행할 수 없기 때문.

    그러나 모던 자바스크립트 엔진(크롬의 V8, 파이어폭스의 SpiderMonkey, 사파리의 JavaScriptCore, 마이크로소프트 엣지의 Chakra 등)은 인터프리터와 컴파일러의 장점을 결합해 비교적 처리 속도가 느린 인터프리터의 단점을 해결했다.

     

    '컴퓨터 > 개념' 카테고리의 다른 글

    몽키패치  (0) 2021.08.04
    용어 정리  (0) 2019.11.24
    15. 네트워크  (0) 2019.11.09
    04 Logic Gates(컴퓨터와 전자공학의 연관)  (0) 2019.11.04
    메모리를 관리하는 방법  (0) 2019.11.01

    댓글

Designed by Tistory.