컴파일 언어 vs 인터프리터 언어
컴파일러 : 작성된 코드를 기계어로 ‘번역’하는 역할.
인터프리터 : 작성된 코드를 한 줄씩 읽어가며 ‘번역’하고 ‘실행’하는 언어
컴파일 언어
작성된 모든 소스코드를 기계어로 ‘번역’한 뒤에, 번역된 코드를 ‘실행’. (번역 → 실행)
컴파일과 프로그램 실행이 완전히 분리.
(ex : JavaScript, HTML, ActionScript, SQL, Python, ruby 등)
장점
빌드가 완료된 실행 가능한 파일은 실행 속도가 빠르다.
매번 번역할 필요 없이 실행 파일만 실행하면 되기 때문에 시간 단축.
단점
프로그램을 수정할 경우 처음부터 빌드 과정을 다시 거쳐야 한다. 대규모 프로그램에서 생산성 감소.
플랫폼에 매우 의존적.
인터프리터 언어
컴파일을 진행하지 않고 인터프리터로 소스코드를 한 줄씩 읽어가며 ‘번역’하고 바로 ‘실행’. (번역 & 실행 동시. 컴파일 언어와 달리 ‘직접’ 기계어로 변환하는 과정이 없다.)
(ex : C, C++, C#, Java 등)
장점
컴파일 과정 없이 바로 실행하기 때문에 수정, 디버깅에 유리. 개발 속도 빠름.
각 플랫폼에 지원하는 인터프리터만 있다면 실행 가능하기 때문에 플랫폼에 독립적.
단점
빌드 되어있는 컴파일 언어 프로그램보다 실행 시간이 느림.
코드를 열면 다 보이기 때문에 보안이 비교적 좋지 않음.
*응용 : Java는 print문을 작성해도 컴파일을 먼저 하기에 내용이 콘솔에 찍히지 않고, Javascript는 한 줄씩 읽어가며 번역하기에 오류가 나기 직전까지의 print문은 콘솔에 찍힌다.
'공부' 카테고리의 다른 글
HTTP란? (0) | 2022.08.09 |
---|---|
WAS vs Web Server (0) | 2022.08.09 |
API란? (0) | 2022.08.09 |
JAVA 함수 정리 (0) | 2022.07.15 |
URI(Uniform Resource Identifier) vs URL(Uniform Resource Locator) (0) | 2022.01.23 |