프로그래밍 언어는 고급언어와 저급언어로 나뉜다고? (인터프리터, 컴파일러)

Namhee KIM·2022년 9월 30일
0

초기 : 비트조합을 하나하나 다 외워서 프로그래밍해야 했음!

수도코드 => 기계어 : 어셈블러
고수준 언어 => 기계어 : 컴파일러

  • 비유 : 번역서를 만드는 역자 = 컴파일러, 실시간 통번역을 해주는 통역가 = 인터프리터
    컴파일러는 고급언어를 기계어로 번역(컴파일)해 실행파일을 생성한다. 해당 소스코드를 다시 실행할 때 기존에 생성해둔 실행파일을 실행함으로써 인터프리터에 비해 시간이 빠르다.

반면, 인터프리터는 한 줄 한 줄씩 번역을 진행함으로써, 번역 시간은 컴파일러에 비해 빠르지만, 매 실행 때마다 같은 번역을 진행해야 하기 때문에, 인터프리터를 사용하는 언어들은 컴파일러를 사용하는 언어들에 비해 실행 속도가 느리다.

또한 인터프리터는 하드웨어에서가 아니라 가상 머신에서 실행된다. 따라서 하드웨어 환경이 변해도 작동이 잘 된다.


(출처 동일)

JAVA는 인터프리터 언어이기도 하고, 컴파일 언어이기도 하다. (=> 하이브리드 언어)

  • JAVA의 컴파일 언어적 성격
    JAVA는 컴파일러를 통해 전체코드를 한 번에 번역하는데, 이 컴파일러를 자바 컴파일러(Java Compiler) 라고 하며, 이 컴파일러는 우리의 JAVA 코드를 JVM(자바 가상머신)이 실행시킬 수 있는 자바 바이트 코드(.class)로 번역한다.

  • JAVA의 인터프리터 언어적 성격
    자바 바이트 코드(.class) 는 자바 가상 머신(JVM)의 자바 인터프리터(Java Interpreter)를 이용해 한 줄씩 실행된다. 처음에는 인터프리터 언어로써 사용되다가, 성능 향상을 위하여 컴파일 언어의 장점을 가져왔다고 한다.


    (출처 동일)

추가
JVM은 Java Virtual Machine의 약자로 자바 프로그램을 OS 환경과 상관없이 구동될 수 있도록 해주는 가상 머신입니다.

JVM의 역할 : OS에 구애받지 않는 실행
사용자가 작성한 자바 코드는 자바 컴파일러에 의해 자바 바이트 코드로 컴파일되고, JVM은 이 자바 바이트 코드(.class)를 사용자의 컴퓨터가 어떤 OS를 사용하든 상관없이 돌아가게끔 만들어줍니다.

0개의 댓글