프로그램이 컴파일러에 input으로 주어진다.
컴파일러는 'Lexical Analysis'를 수행해서, 프로그램을 토큰들(Sequence of Tokens)로 만들어 낸다.
토큰을 입력으로, Syntax Anlaysis는 Tree를 만들어 낸다.
Tree는 Parse Tree와 Abstract Syntax Tree의 2가지 종류가 있다.
✔️ AST는 Parse Tree보다 간단한 버전이며, Command와 같은 불필요한 정보를 제거해낸 형태이다.
컴파일러는 command가 실제 output, machine code를 만들어 내는데 영향을 미치지 않기 때문에 command를 신경 쓰지 않는다.
AST 구조가 되면, 컴파일러는 Semantic Analysis를 하고, output으로 기계어 코드를 만든다.
인터프리터는 바로 Interpretation을 수행하고 연산 결과를 출력한다.