토픽 106 / 111·코드 실행 체계 (Code Execution Model)
인터프리터 (Interpreter)
인터프리터 (Interpreter)
소스 코드를 한 줄씩 또는 한 문장씩 읽어 즉시 해석·실행하는 언어 처리 시스템으로, 별도의 목적 코드를 생성하지 않고 실시간으로 프로그램을 수행
목적: 즉시 실행, 대화형 개발, 플랫폼 독립성, 빠른 프로토타이핑
특징: 줄 단위 실행, 별도 컴파일 불필요, 대화형(REPL), 실행 시 오류 발견, 이식성 높음
동작 방식
- •순수 인터프리터: 소스→AST→직접 실행 (초기 BASIC, 쉘 스크립트)
- •바이트코드 인터프리터: 소스→바이트코드→VM에서 실행 (CPython, Java 초기)
- •트리 워커: AST를 순회하며 직접 실행
주요 인터프리터: CPython(Python), Ruby MRI, Perl, Lua, Bash/Zsh
장점: 빠른 개발 사이클, 대화형 디버깅, 플랫폼 독립, 동적 코드 실행(eval)
단점: 느린 실행 속도(10-100배), 런타임 오류, 소스 노출, 메모리 사용 많음
비교: 인터프리터(즉시실행/느림/유연/Python) vs 컴파일러(사전변환/빠름/정적/C)
연관: 컴파일러, JIT, REPL, 스크립트 언어, 바이트코드