컴파일 언어인터프리터 언어는 소스 코드를 어떻게 실행하는지에 따라 구분됩니다. 각각의 특징과 차이점은 아래와 같습니다


컴파일 언어

컴파일러를 사용해 소스 코드를 한 번에 기계어로 변환한 후 실행하는 방식입니다.

  • 특징:
    1. 컴파일 과정 필요: 소스 코드를 기계어로 변환한 실행 파일(바이너리)을 생성.
    2. 실행 속도가 빠름: 한 번 변환된 기계어 파일은 별도의 변환 없이 바로 실행 가능.
    3. 디버깅이 상대적으로 어렵다: 에러가 컴파일 시점에만 감지됨.
    4. 플랫폼 의존성 있음: 생성된 실행 파일은 특정 운영 체제와 하드웨어에 종속적.
  • :
    • C, C++
    • Go
    • Rust
  • 작동 과정:
    1. 소스 코드 작성 (.c 파일 등).
    2. 컴파일러로 기계어 파일(.exe, .out) 생성.
    3. 실행 파일을 실행.

인터프리터 언어

소스 코드를 실행 시 한 줄씩 해석하며 실행하는 방식입니다.

  • 특징:
    1. 실행 시마다 소스 코드를 해석함 → 실행 속도가 느림.
    2. 디버깅이 쉽다: 에러가 코드 실행 중에 발견되기 때문.
    3. 플랫폼 독립적일 수 있음: 인터프리터만 해당 플랫폼에서 실행 가능하면 됨.
    4. 추가 변환 없이 소스 코드를 바로 실행 가능.
  • :
    • Python
    • JavaScript
    • Ruby
    • PHP
  • 작동 과정:
    1. 소스 코드 작성 (.py 파일 등).
    2. 인터프리터가 한 줄씩 읽고 실행.

주요 차이점 비교:

특징컴파일 언어인터프리터 언어
실행 과정 사전 컴파일 후 실행 실행 시 해석하며 실행
속도 빠름 느림
에러 발견 시점 컴파일 단계에서 발견 실행 단계에서 발견
결과물 기계어 실행 파일 생성 별도의 실행 파일 없음
플랫폼 독립성 플랫폼 의존적 플랫폼 독립적일 가능성 높음
사용 사례 시스템, 고성능 응용 프로그램 스크립트, 웹, 데이터 처리

자바

  • 자바는 컴파일 언어와 인터프리터 언어의 혼합입니다.
    1. 먼저 컴파일러(javac)로 바이트코드로 변환 (컴파일 언어 방식).
    2. JVM이 바이트코드를 실행 시점에 해석 및 최적화 (인터프리터 방식).

이런 방식 덕분에 자바는 플랫폼 독립성과 실행 성능을 모두 확보합니다.

+ Recent posts