PL

[PL] 프로그래밍 언어 구현 방법

서노리 2022. 4. 14. 03:00
반응형

프로그래밍 언어 구현 방법

  • Compilation
    - 소스 코드를 기계어로 해석하여 프로그램을 실행한다.
    - 해석 속도는 느리지만 실행 속도는 빠르다.

    ※ compilation 과정
    1) Lexical analysis (어휘 분석기) : 어휘 단위로 구분하여 token들을 반환
    2) Syntax analysis (구문 분석기) : token들로 parse tree를 생성하여 문법이 맞는지 확인 
    3) Semantics analysis (의미 분석기) : 문장의 의미를 분석하여 intermediate code를 생성
    4) Code generation (코드 생성기) : 기계어 프로그램으로 변환

compilation process

 

  • Pure Interpretation
    - 해석 과정이 없다.
    - 프로그램 구현이 쉽다. (런타임 에러가 자주 발생한다.)
    - 실행 시간이 느리다.

 

  • Hybrid Implementation
    - compiler와 pure interpreter를 섞은 것으로 JVM이 대표적이다.
    - 소스 코드가 intermediate language로 변환된 후 interpreter가 수행된다.
      (pure interpreter보다 실행 시간이 훨씬 빠르다.)


 

※ Compilation vs Interpretation

Compilation은 실행하기 전에 소스코드들을 머신코드로 번역하는 방식으로 실행될 때마다 미리 번역된 기계어를 재사용한다. 반면 Interpretation은 소스코드들을 한줄씩 읽어들여 머신코드로 실행하는 방식으로 매번 실행될 때마다 번역이 필요하여 실행 시간이 느리다.

 

JIT (Just-in-Time) 컴파일러

JIT 컴파일러는 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. JIT 컴파일러는 처음 실행시 소스코드를 intermediate language로 번역한다. 그리고 이를 캐싱해두고 같은 코드가 다시 실행되면 이를 번역하지않고 해당 정보를 가져온다.
JIT 컴파일러는 Java의 JVM에서 사용된다.


 

반응형

'PL' 카테고리의 다른 글

[PL] 어휘분석과 구문분석(Lexical and Syntax Analysis)  (0) 2022.04.17
[PL] Semantic의 표현  (0) 2022.04.17
[PL] Syntax의 표현  (0) 2022.04.15
[PL] 프로그래밍 언어 설계  (0) 2022.04.14
[PL] 프로그래밍 언어 평가 기준  (0) 2022.04.13