ChangHoon's IT Blog

컴파일 언어와 인터프리터 언어 본문

Java

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

Hoonss 2020. 2. 10. 15:18

* 컴파일 언어란?

- 소스코드를 목적코드로 옮기는 것.

(여기서 말하는 목적코드는 컴파일러나 소스코드 파일을 컴파일 해서 생성하는 파일을 말한다.)

-번역과 실행이 따로 이루어진다.

* Compiler(컴파일러) : 번역기라고 불리며 특정 프로그래밍 언어를 다른 언어로 옮기는 프로그램.

즉, 간단히 컴파일 해주는 프로그램

컴파일 과정

-> 컴파일을 하게 되면 실행가능한 파일(프로그램)이 생성된다.

 

* 인터프리터 언어란?

-소스코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다.

즉, 소스코드를 한줄 한줄씩 읽어들이면서 실행하는 프로그램을 뜻함

- 번역과 실행이 동시에 일어남.

인터프리터 과정

-> 인터프리터는 별도의 실행파일이 존재하지 않는다.

 

 

* 인터프리터와 컴파일 언어의 종류

인터프리터 언어 :  스크립트 언어가 대표적이다

(ex. JavaScript, HTML, ActionScript, SQL, pyhthon, ruby 등)

 

컴파일 언어 : 실행파일이 생기는 것들

(ex. C, C++, C#, Java 등...)

 

 

* 빌드 과정이란?

- 빌드란, 소스파일을 실행파일로 생성하는 과정.

과정구조 : [ 고급언어 --> (변환) --> 기계어 ]

 

인터프리터 언어는 빌드과정 없이 고급언어에서 한줄씩 읽어 실행하는 반면

컴파일러 언어의 경우 .class 파일 등과 같이 변환하여 실행을 한다.

 

* 컴파일 언어와 인터프리터 언어의 차이점

 

1. 실행 단계의 차이

 

컴파일 언어는 ‘컴파일러’ 단계가 필요하고 

인터프리터 언어는 별도의 ‘컴파일러’ 과정이 필요하지 않다.

 

 

 

2. 생산 속도의 차이

 

컴파일 언어의 경우 ‘컴파일러’ 과정이 들어가기 때문에

인터프리터 언어보다 생산 속도가 느리다.

인터프리터 언어는 과정이 단순하기 때문에 생산 속도가 빠르다.

 

 

 

3. 소스 코드 작성 제약사항

 

컴파일형 언어에는 소스 코드 작성을 위한 제약사항이 스크립트형 언어보다 더 많다.

따라서 컴파일 언어는 사용해야 하는 변수의 자료에 대해서 명확하게 알아야 하며

각종 문법에 따른 제약 사항 들도 알아야 하구요.

 

 

 

4. 디버깅

 

인터프리터 언어는 간편한 만큼 잃는 것도 있다.

소스 코드가 실행되기 전까지는 소스 코드의 버그를 인지하는 것이 어렵다.

물론, 인지할 순 있지만 컴파일 언어에 비해 오류 인지 시점이 늦다.

또한 컴파일 언어가 디버깅 작업이 훨씬 수월하다.

 

 

 

5. 실행 속도

 

생산 속도는 인터프리터 언어가 더 좋지만

실행 속도는 컴파일 언어가 훨씬 더 빠르다.

컴파일을 한 뒤에 생성된 파일에 의해 프로그램이 실행되기 때문에

번역기에 의해 번역이 되고 실행되는 인터프리터 언어에 비해 훨씬 빠르다.

실행 속도는 

C언어, C++ -> Java -> Python 순으로 느려지기 때문에

연산 속도나 실행 속도에 민감한 프로그램은 인터프리터 언어로 개발하지 않는다!



 

 

 

참고자료

https://ithub.tistory.com/86 

https://smartreview.tistory.com/55

'Java' 카테고리의 다른 글

컬렉션이란?(Collection)[List, set, map]  (0) 2020.02.12
while문과 do ~ while문의 차이  (0) 2020.02.10
인터페이스란?(Interface)  (0) 2020.02.10
상속이란  (0) 2020.02.10
Comments