Byte Code (바이트코드)
정의:
Byte code
는 고수준 프로그래밍 언어로 작성된 source code
를 중간 형태로 변환한 code 임.
이는 특정 Virtual Machine (VM)에서 실행될 수 있도록 설계됨.
가장 대표적인 예로 Java에서 사용되는 byte code
가 있음.
특징:
- Intermediate Code (중간 코드):
Byte code
는source code
와machine code
사이의 중간 단계로,source code
를 직접machine code
(기계어)로 변환하지 않고- 중간 단계의 코드로 변환함.
- Virtual Machine (가상 머신)에서 실행:
Byte code
는 특정 하드웨어에 종속되지 않고- 가상 머신(예: Java Virtual Machine, JVM 또는 Python VM, PVM)에서 실행됨.
- VM이 이를
machine code
로 번역하여 실행.
- Portability (이식성):
Byte code
는 플랫폼 독립적- 동일한 byte code가 여러 OS 및 하드웨어에서 동일하게 실행 가능함.
- VM만 해당 플랫폼에 맞게 구현되어 있으면 됨.
- Java:
- Java 컴파일러는
source code
를 JVM에서 실행할 수 있는 byte code로 변환. - JVM은 이
byte code
를 해석하거나JIT
(Just-In-Time) 컴파일러를 사용하여 실행 시machine code
로 변환.
- Java 컴파일러는
- Python:
- Python은 기본적으로 인터프리터 방식으로 실행되지만,
byte code
(.pyc 파일)를 생성하여 Python Virtual Machine(PVM)에서 실행함.JIT
컴파일러는PyPy
와 같은 일부 Python 구현에서 사용됨.
Example:
- Java:
- Java
source code
를 컴파일하면.class
파일 형태의byte code
가 생성됨. - 이 파일은 JVM에서 실행될 수 있습니다.
- Java
- Python:
- Python도
.pyc
파일 형태의byte cod
e를 생성하여 - PVM 에서 실행함.
- Python도
요약
Byte Code (바이트코드):
- Intermediate code (중간 형태의 코드)로, VM에서 실행됨.
- 플랫폼 독립성을 제공하여 여러 환경에서 동일하게 동작함.
- Java와 Python 등의 언어에서 사용됨.
- Java의 경우,
source code
를 컴파일하여 생성된.class
파일이byte code
임. - Python의 경우,
source code
를 컴파일하여 생성된.pyc
파일이byte code
임.
같이 읽어보면 좋은 자료들
https://dsaint31.me/mkdocs_site/CE/ch08/ce08_compiler_interpreter/
https://dsaint31.tistory.com/496
'CE' 카테고리의 다른 글
Tree Traversal (트리 순회): BFS and DFS (2) | 2024.12.02 |
---|---|
[CE] Heap and Complete Binary Tree (0) | 2024.11.16 |
[CE] Stream이란 (4) | 2024.09.11 |
[CE] Machine Code와 Microcode의 차이점 비교 및 설명 (0) | 2024.06.05 |
[CE] Terms: HDD, Partition, Volume, Drive and File System. (0) | 2024.05.15 |