Chapter 7. 컴파일러


Untitled

<aside> 💡 **컴파일(compile)**이란?

7.1 컴파일러 인스턴스 생성


02_compile_status.png

컴파일러가 시작되기 전에 전역 컴파일러 상태가 생성. 컴파일러상태 구조체는 ccompilerFlag, stack, PyArena 등 컴파일 과정중 유지해야 하는 여러정보를 포함한다.

PyAST_CompileObject


// **Cpython/Python/compile.c** 

struct compiler {
    PyObject *c_filename;
    struct symtable *c_st;
    _PyFutureFeatures c_future;  /* module's __future__ */
    PyCompilerFlags c_flags;

    int c_optimize;              /* optimization level */
    int c_interactive;           /* true if in interactive mode */
    int c_nestlevel;
    PyObject *c_const_cache;     /* Python dict holding all constants,
                                    including names tuple */
    struct compiler_unit *u;     /* compiler state for current block */
    PyObject *c_stack;           /* Python list holding compiler_unit ptrs */
    PyAr