[Java] 자바는 컴파일 언어? 인터프리터 언어?

2024. 6. 27. 17:38· Languages/Java
목차
  1. 컴파일러와 인터프리터
  2. 1. 컴파일 언어
  3. 2. 인터프리터 언어
  4. 자바는 컴파일 언어? 인터프리터 언어?

컴파일러와 인터프리터

컴파일러와 인터프리터 모두 high-level language를 machine language로 번역한다.

 

1. 컴파일 언어

컴파일 언어는 내가 작성한 소스 코드 전체를 기계어로 번역한 뒤, 이 번역된 코드를 한 번에 실행하는 두 단계를 거쳐 진행된다. 즉, 번역과 실행이 완전이 따로 이루어진다.

번역은 컴파일러를 통해 수행되고, 대표적인 예시로는 C, C++이 있다.

 

- 특징

1. 컴파일은 오래 걸릴 수 있다.

2. 이미 컴파일 된 프로그램이라면 빠른 속도로 실행이 가능하다.

3. OS 이식성이 낮다. 다른 OS에서 실행하려면 그에 맞는 컴파일러로 다시 컴파일 해주어야 한다.

 

2. 인터프리터 언어

인터프리터 언어는 소스 코드를 한 줄씩, 번역과 실행을 동시에 진행한다. 번역은 인터프리터를 통해 수행되며, 대표적인 예시로는 Python, R, JavaScript가 있다.

 

- 특징

1. 줄 단위로 번역과 실행을 하기 때문에 실행이 느리다.

2. 디버깅이 쉽다. (오류를 발견하면 해당 코드 밑으로는 번역 및 실행 불가)

3. OS 이식성이 좋다. 호환되는 인터프리터만 있다면 바로 실행 가능하다.

 

자바는 컴파일 언어? 인터프리터 언어?

자바는 컴파일 언어이면서 동시에 인터프리터 언어이다.

 

- 자바 컴파일러는 javac(java compiler)를 통해 .java 파일을 바이트코드로 쓰여진 .class 파일로 변환한다.

즉, 컴파일러는 자바 소스코드를 JVM을 위한 기계어로 변환한다.

 

- 자바 인터프리터는 자바 컴파일러에 의해 변환된 class 파일 내의 바이트 코드를 특정 환경의 기계에서 실행될 수 있도록 변환한다.

 

정리하자면

자바 컴파일러는 소스 코드(.java)를 자바 바이트 코드(.class)로 컴파일하고,

자바 인터프리터는 바이트 코드(.class)를 기계가 이해할 수 있도록 machine code로 변환/번역한다.

자바는 따라서 컴파일 언어이자 인터프리터 언어인 "하이브리드 언어"이다.

 

혼합 사용을 통해 실행 속도와 코드 수정의 편의성을 조화시킬 수 있다.

 

https://jooona.tistory.com/157

 

[JAVA] JAVA는 컴파일 언어일까, 인터프리터 언어일까?

앞의 글에서 우리가 코딩 시에 사용하는 언어들은 컴파일 언어와 인터프리터 언어로 구분할 수 있다는 사실을 알게 되었다. 다시 기술하자면, C, C++, Go 등의 언어는 컴파일 언어이고, Python, R, Java

jooona.tistory.com

https://velog.io/@tsi0521/Java%EB%8A%94-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EC%99%80-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0-%EB%91%98-%EB%8B%A4-%EA%B0%80%EC%A7%84%EB%8B%A4

 

Java는 왜 컴파일러와 인터프리터 둘 다 가지는가?

1. 컴파일러 vs 인터프리터 컴파일러 & 인터프리터 모두 high-level language를 machine language로 번역한다 컴파일러는 소스 코드(high-level language로 작성) 전체를 링커등을 통해 한번에 번역하여 object file(

velog.io

 

'Languages > Java' 카테고리의 다른 글

[Java] Map을 Value 값으로 오름차순, 내림차순 정렬하기  (0) 2025.01.20
[Java] try-with-resources 예외 처리  (0) 2024.08.22
[Java] Scanner vs BufferedReader 사용자 입력 받기  (0) 2024.08.08
[Java] 깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy)  (0) 2024.06.28
[Java] == 과 equals()로 문자열 비교하기  (0) 2024.06.28
  1. 컴파일러와 인터프리터
  2. 1. 컴파일 언어
  3. 2. 인터프리터 언어
  4. 자바는 컴파일 언어? 인터프리터 언어?
'Languages/Java' 카테고리의 다른 글
  • [Java] try-with-resources 예외 처리
  • [Java] Scanner vs BufferedReader 사용자 입력 받기
  • [Java] 깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy)
  • [Java] == 과 equals()로 문자열 비교하기
효딩
효딩
개ㄱ발은 기세다. 줄여서 객기.
hyoding개ㄱ발은 기세다. 줄여서 객기.
효딩
hyoding
효딩
전체
오늘
어제
  • 분류 전체보기 (245)
    • SKKU SW (30)
      • Computer Architecture (14)
      • Database (4)
      • Computer Network (3)
      • Operating System (7)
      • Mobile App Programming (2)
    • SuperCoding (68)
    • CS (8)
    • Web Programming (19)
    • Cloud (13)
    • Languages (45)
      • Python (8)
      • Java (37)
    • Supporters (8)
      • MoteMote (6)
      • NHN Cloud (2)
    • Certification (27)
      • Network Advisor (14)
      • ADsP (10)
      • Engineer Information Proces.. (3)
    • Finance (9)
      • 경제금융용어 (3)
    • Woori FISA (14)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 봐
  • 클라우드 서비스
  • 코틀린
  • Kotlin
  • 네트워크관리사 커트라인
  • apppaas
  • 글로벌소프트웨어캠퍼스
  • 네트워크관리사 후기
  • 네트워크관리사2급 공부방법
  • 서버개발
  • 네트워크관리사 준비물
  • 서버배포
  • AWS
  • 인프라개발
  • 클라우드
  • 네트워크관리사 합격
  • 코틀린문법
  • 인프라
  • 우리fis아카데미
  • 네트워크관리사2급 필기
  • rds local 접속
  • K-디지털트레이닝
  • nhn cloud
  • 네트워크관리사2급
  • 앱개발
  • 클라우드서비스개발
  • 서버생성
  • 우리FISA
  • 네트워크관리사
  • 우리에프아이에스

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
효딩
[Java] 자바는 컴파일 언어? 인터프리터 언어?
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.