본문 바로가기
CE

[CE] Byte Code (바이트코드)

by ds31x 2024. 6. 5.

Byte Code (바이트코드)

정의:

Byte code는 고수준 프로그래밍 언어로 작성된 source code중간 형태로 변환한 code 임.
이는 특정 Virtual Machine (VM)에서 실행될 수 있도록 설계됨.

가장 대표적인 예로 Java에서 사용되는 byte code가 있음.


특징:

  • Intermediate Code (중간 코드):
    • Byte codesource codemachine 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로 변환.
  • Python:
    • Python은 기본적으로 인터프리터 방식으로 실행되지만,
    • byte code(.pyc 파일)를 생성하여 Python Virtual Machine(PVM)에서 실행함.
    • JIT 컴파일러는 PyPy와 같은 일부 Python 구현에서 사용됨.

Example:

  • Java:
    • Java source code를 컴파일하면 .class 파일 형태의 byte code가 생성됨.
    • 이 파일은 JVM에서 실행될 수 있습니다.
  • Python:
    • Python도 .pyc 파일 형태의 byte code를 생성하여
    • PVM 에서 실행함.

요약

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/

 

BME228

Compiler Language and Interpreter Language Compiler Language Compiler(High-level language를 machine language로 번역)를 사용하는 고급 언어. 프로그램 전체를 읽어들여 이를 object code(목적코드)로 바꿈. Compiler 능력에 따

dsaint31.me

https://dsaint31.tistory.com/496

 

[Python] Interpreter and PVM (Python Virtual Machine)

대학을 막 졸업해서 초보 프로그래머로 일을 할 때 개인적으로 가지고 있던 편견 중 하나가 script language를 매우 하찮게 생각하면서 오직 compiler languages 만을 programming language로 생각했던 것이다. (

dsaint31.tistory.com