[ 이것저것 ] PyPy
Updated:
프로그래밍 언어
Python $^{b}$은 Python $^{a}$만의 문법에 맞춰 코드를 작성하면 이를 실행하는 하나의 프로그램이다.
- 두 가지 의미
- (컴퓨터 시스템을 구동시키는) 소프트웨어를 작성하기 위한 형식 언어
- 프로그래밍 언어를 지원하는 소프트웨어 (소프트웨어를 작성하기 위한 소프트웨어)
Compile Language vs. Interpreter Language
Compile Language
- 소스 코드를 기계어로 컴파일 → 실행파일 만듬 → 실행
Interpreter Language
- run time 때 한 줄씩 실행
Python의 조상
Python이라는 프로그램을 구현할 때 사용된 언어는 C, Java, Python 등이 있다.
- C → CPython
- 컴파일하여 bytecode로 바꾸고 그 다음 인터프리터(가상 머신)가 실행한다.
- Java → Jython
- RPython → PyPy
PyPy
- RPython (Restricted Python)으로 만든 구현체
- RPython? 파이썬 프로그래밍 언어의 부분 집합.
- JIT(just in time) 컴파일을 사용한다.
- run time에서 필요한 부분들을 즉석 컴파일
- 자주 쓰이는 코드를 caching한다.