프로그래머가 작성한 코드를 기계어로 변환하는 과정 없이 한 줄 한 줄 해석해서 바로 명령어를 실행하는 언어
기계어로 변환하지 않기 때문에 빌드 과정 없이 바로 실행 가능
런타임 상황에서는 한 줄씩 읽기 때문에 컴파일 언어에 비해 속도가 느림
프로그램 수정이 간단
프로그래머가 작성한 코드를 모두 기계어로 변환 후 기계에 넣고 기계어 코드를 실행
빌드 과정 (소스 파일 -> 실행 파일)에서 인터프리터 언어에 비해 시간 소요
런타임 상황에서는 이미 소스코드가 변환되어 있기에 빠름
수정 후 다시 컴파일 해야 함
파이썬 구현체는 인터프리터 안에 컴파일러를 내장하고 있다!
파이썬을 C언어로 구현한 구현체
인터프리터이면서 컴파일러
파이썬 코드를 컴파일해서 bytecode로 바꾸고 인터프리터가 실행
.py 파일을 실행하면 .pyc파일이 생성(cpython이 컴파일한 bytecode 들어있음)
GIL(Global interpreter lock) 사용
파이썬 코드를 java bytecode로 만들어서 JVM에서 실행될 수 있도록 함
.py파일을 .class 파일로 컴파일
python 자체로 구현
JIT 컴파일(프로그램을 실행하는 시점에서 필요한 부분을 즉석으로 컴파일하는 방식) 도입해서 Cpython보다 빠름
파이썬 컴파일러는 명령어를 바이트코드 명령어로 번역하고 이를 하드 디스크의 .pyc파일에 저장
파이썬 인터프리터는 .pyc를 변역하여 인터프리터 방식으로 기계어로 번역
참고
https://cjh5414.github.io/about-python-and-how-python-works/
https://coding-factory.tistory.com/303
https://www.attrest.com/learning-python-03/