[JAVA] 컴파일 vs 인터프리터 vs 스크립트

YoungHo-Cha·2021년 10월 2일
2

Java

목록 보기
7/7
post-thumbnail

오늘은 컴파일 언어와 인터프리터 언어에 대해서 알아보자.


🚗목차

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

🧐컴파일 언어란?

🔎컴파일 언어의 실행 과정

먼저 다음 그림을 보자!

컴파일 언어는 다음과 같은 순서로 동작한다.

  1. 소스파일 컴파일(-> 2진 코드)
  2. CPU에서 실행

🔎컴파일 언어의 특징

  • 컴파일 프로그램을 이용하여 컴파일한다.
  • 실행 파일이 만들어진다.
  • 실행 파일을 실행시킨다.
  • 속도가 빠르다.
  • C++, Visual C++, Object C, Java, C 등이 있다.
  • A 운영체제에서 만든 프로그램을 B 운영체제에서 돌릴 경우, 돌아가지 않을 가능성이 아주 크다. (ex. int값이 달라지는 경우)
  • 모든 코드를 한번에 번역(컴파일)하고, 한번에 실행(CPU)한다. 그래서 번역과 실행이 따로 이루어진다.

🧐인터프리터 언어란?

컴퓨터 수행시 먼저 프로그램이 수행할 컴퓨터의 목적 코드로 번역되어야 하는 언어를 말한다.

🔎인터프리터 언어 실행 과정

인터프리터 언어는 다음과 같은 순서로 동작한다.

  1. 해석기 실행
  2. 해석기가 소스파일을 2진코드로 변환
  3. CPU에서 실행

🔎인터프리터 언어의 특징

  • 컴파일 과정이 없다.
  • 소스 파일을 해석 엔진프로그램을 이용하여 한 줄씩 실행한다.
  • 실행 파일이 만들어지지 않는다.
  • 속도가 느리다.
  • Java, JavaScript가 있다.
  • 한번에 1줄씩 읽어 번역(JVM), 실행(CPU)가 동시에 일어난다.

🧐자바는?

위에서 보면 컴파일 언어, 인터프리터 언어에 Java가 속한다는 것을 알 수 있다.

엥? 둘이 상반된 개념아냐? 혼용이 가능해?

가능하다.

🔎자바 언어의 실행과정

자바 언어의 실행과정을 보자.

  1. ".java" 파일을 컴파일한다. 컴파일된 파일은 ".class"이다. 바이트 코드(16진수)로 이루어져 있다.

  2. "*.class"를 실행한다. JVM도 실행되고, 바이트 코드를 2진 코드로 변환한다.

  3. 변환된 2진 코드를 운영체제에 넘겨준다.

  4. 운영체제는 CPU를 이용하여 2진 코드를 실행한다.

🔎왜 혼용하는가?

컴파일 언어의 단점인, 타 운영체제에서 실행이 되지 않는 문제를 보완하기 위함이다.

ex) 사용환경이 편리한 윈도우에서 프로그램을 작성하고, Linux나 Unix 서버에 올려서 실행한다.

각각의 컴퓨터에는 그 운영체제에 맞는 JRE(JVM이 포함되어있음)가 설치되어 있어야 한다.


🧐스크립트 언어란?

Script 언어는 이미 존재하는 소프트웨어를 제어하기 위한 용도로 사용되는 언어이다.

  • 스크립트 언어는 인터프리터 언어이다.
  • 스크립트 언어는 사용처에 따라 정의되는 분류이기에 작동방식과 무관한다.
  • 대표적인 JavaScript는 웹 브라우저의 스크립트 언어이다. 그 목적이 고정되어 있어서 스크립트 언어라고 한다.

살짝 논점에 벗어나는 개념이다!
한마디로 "승용차(인터프리터) vs 탱크(컴파일)" 경기인데, "소나타(스크립트)"가 등장한거다.


📋마치며

오늘은 뭔가 깔끔한 기분이다 ^^.
매일 이렇게 정리가 되었으면..


🧷Reference

profile
관심많은 영호입니다. 궁금한 거 있으시면 다음 익명 카톡으로 말씀해주시면 가능한 도와드리겠습니다! https://open.kakao.com/o/sE6T84kf

0개의 댓글