티스토리 뷰

Computer Science/Etc

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

감성적인 개발자 2022. 7. 27. 00:58

고급언어로 작성된 프로그램은 컴퓨터가 바로 이해할 수 없기 때문에 기계어로 변환하는 과정을 거쳐야만한다.

소스코드를 기계어로 변환하는 처리기법으로 번역 기법(컴파일 기법)인터프리터 기법이 있고 컴파일 기법을 이용해 프로그램을 실행시키는 언어를 컴파일 언어, 인터프리터 기법을 통해 프로그램을 실행시키는 언어를 인터프리터 언어라 한다.

 

컴파일러

고급언어로 작성된 소스프로그램을 기계어로 번역된 목적프로그램으로 번역해주는 번역기번역기법에서 사용된다.

저급언어로 작성된 프로그램은 어셈블러라고 하는 번역기를 통해 번역되며 사용되는 번역기 및 번역과정은 다음과 같다.

 

컴파일기법 번역과정

번역기 종류

1. 컴파일러 -고급언어를 번역해 어셈블리언어 혹은 기계어로된 목적 프로그램을 생성

2. 어셈블러 - 저급언어를 번역해 기계어로된 목적 프로그램 생성

3. 링커 - 재배치 가능한 기계어 프로그램을 생성하는 번역기

4. 로더 - 링커가 생성한 재배치가능한 기계어를 받아들여 실행가능한 프로그램을 생성

 

■ 컴파일 언어 종류

C, C++, FROTRAN, Java

 

 컴파일 언어 장점

반복문, 부프로그램 호출과 같은 반복처리 프로그램 수행속도가 빠르다.

한 번 번역된 프로그램은 변경이 없다면 재사용 가능하다.

 

 컴파일 언어 단점

번역된 프로그램(=목적프로그램)은 기억장소를 많이 요구한다. 목적프로그램의 크기는 소스와 같다.

프로그램 일부분만 변경하더라도 프로그램 전체를 컴파일 해야한다.

 

인터프리터

복잡하지 않은 프로그램 혹은 대화식 프로그램에 많이 사용된다. 원시코드(소스프로그램)를 한줄 단위로 번역후 바로 실행하며, 실행 중 에러가 발생해도 발생지점 이전까지 프로그램이 실행된다. 에러가 발생하면 실행을 즉시 중단하기 때문에 에러는 하나만 검출된다.

인터프리터 기법 번역과정

 인터프리터 언어 종류

Python, JavaScript, Java, SQL

 

 인터프리터 언어 장점

프로그램이 바로 실행되므로 목적프로그램이 만들어지지 않기 때문에 기억장소를 효율적으로 사용할 수 있다. 

실행단위가 작기 때문에 프로그램 변화에 빠르게 대처할 수 있으며 번역 속도가 컴파일러보다 빠르다.

 

 인터프리터 언어 단점

프로그램실행시 코드를 한 줄 단위로 받아 바로 실행시키기 때문에 반복처리 프로그램의 실행 속도가 느리다.

 

 

하이브리드 기법

번역하는 과정에서 컴파일 기법과 인터프리터 기법 두 가지 방식을 혼합한 형태를 하이브리드 기법이라 하는데, Java가 하이브리드 기법으로 동작한다. 하이브리드 기법을 통해 얻게되는 장점은 운영체제에 독립성을 가질 수 있게 되는 것이다.

 

Java는 프로그램을 실행시키기 쉬운 중간코드(바이트코드)로 번역한 후 이를 JVM으로 넘기고 JVM은 바이트코드를 2진코드로 변환시켜 운영체제로 넘겨준다. 

중간코드(바이트코드)의 실행을 하드웨어 인터프리터가 아닌 소프트웨어 인터프리터(자바 인터프리터)가 수행함으로써 JVM만 있다면 Java는 운영체제에 독립성을 가질 수 있게되어 다양한 운영체제 환경에서도 실행가능하다.

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함