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

·2023년 1월 29일
0

개발 지식

목록 보기
16/96
post-thumbnail

인터프리터 언어

키워드
즉시 실행 가능

실행 즉시 코드를 한 줄, 한 줄 기계어로 번역하며 명령을 처리하는 프로그래밍 언어로, 대표적으로 자바스크립트와 파이썬 등이 있다. 실행마다 코드를 번역하기 때문에, 속도는 컴파일 언어보다 느리지만, 컴파일을 기다리는 작업을 필요로 하지 않기 때문에 코드 수정이 한층 용이하다.

컴파일 언어

키워드
컴파일 후 실행 가능

실행 전 일괄적으로 코드를 기계어로 번역한 후, 명령을 처리하는 프로그래밍 언어로, 대표적으로 C 가 있다. 매 실행마다 빌드과정을 기다려야 하는 단점이 있으나, 인터프리터 대비 실행 속도 훨씬 빠르고, 반드시 실행하지 않아도 컴파일 과정에서 먼저 에러를 제어할 수 있다는 장점이 있다.

자바스크립트는 인터프리터 언어인가 컴파일 언어인가

키워드
인터프리터 언어, 단 엔진에 따라 최적화를 위해 컴파일 작업이 진행되기도 함.

자바스크립트의 언어 자체는 인터프리터 언어이다. 단, 개발 시 어떤 엔진을 사용하냐에 따라 필요한 경우 컴파일 과정이 진행된다. 기존과 같이 인터프리터를 통해 하나하나 코드를 분석하면서 실행을 하나, 해당 플랫폼 엔진에서 이를 지켜보며, 필요한 코드의 경우 컴파일 작업을 거친다. 이를 JIT 컴파일링이라 부른다. 대표적으로 크롬의 V8, Firefox 의 SpiderMonkey 가 해당 방법을 사용한다.

요약하자면 자바스크립트는 자체는 인터프리터 언어를 기반으로 실행 되지만, 플랫폼 엔진을 통해 상황에 따라 컴파일링이 혼합되어 사용된다.

자바는 인터프리터 언어인가 컴파일 언어인가

키워드
자바스크립트와 과정은 다르나 결과론적은 동일

의견 차이가 있는데, 개인적으로는 둘다 맞다고 본다. 기본적으로 자바는 기본 코드를 .class 파일로 컴파일 한 후, .class 를 파일을 JVM 을 통해 기계어로 번역한다. 기본코드 → .class 가 컴파일 과정에 속하고, .class → 기계어는 인터프리팅 과정에 속한다. 단 자바스크립트와는 다르게, 다른 플랫폼 엔진의 힘을 빌리는 것이 아닌 언어 자체에서 컴파일링과 인터프리팅이 일어나기 때문에, 둘다 맞다고 할 수 있다고 생각한다.

원래 자바는 인터프리터 언어로만 사용이 되다가, 성능 향상을 위해 버전업을 통해 컴파일 언어를 혼합하는 기능을 추가하였다고 한다.

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글