저번 글에서 택스트 형태의 소스 코드를 컴파일 가능한 논리 구조인 리더 (텍스트)->랙서 > CST-> 파서 > AST-> 컴파일러에서 랙서와 파서 부분을 정리 했고 이번엔 컴파일러에 대해서 정리를 하려합니다. 컴파일 작업은 두 부분으로 구성된다. 1. 컴파일러 AST를 순회하며 논리적 실행순서를 나타내는 제어 흐름 그래프를 생성한다. 2.어셈블러: CFG의 노드들을 실행 가능한 명령을 순차적으로 나열한 바이트 코드 형태로 변환한다. 컴파일 과정 파서 > AST -> 컴파일러 > CFG -> 어셈블러 > 바이트코드 -> 실행 AST 모듈을 코드 객체로 컴파일하는 과정 PyAST_CompileObject() compile.c 경로에 정의돼 있다. 컴파일러 상태는 심벌 테이블을 담는 컨테이너 타입이다. 심벌..