프로그램을 실행시키는 방식
이 세가지 방법 모두다 lexical analyzer 와 syntax analyzers 가 필수이다.
Lexical analyzer = parsers 는 거의 syntax 에 기초한다.
거의 모든 컴파일러가 syntax 분석을 두가지 부분으로 나눈다.
두가지로 나뉘는 이유
Lex 라는 유닛은 어휘를 찾아서 품사를 찾고 문법으로 해석하고 기계어
Lexeme 을 찾는 다는 것은 기본적으로 patten match 다. :일치하는 문자열을 찾으려고 한다.
컴파일러는 기계어로 바꿔주는 것이 목적이다. 근데 기계어는 언어마다 다 다르기 때문에 Intermediate code 로 일단 바꿔준다. 그뒤로 언어에 맞는 기계어로 바꾼다.
문자열을 주면 한글자씩 모은다. → Lexeme 이된다.
Syntax analyzer 앞쪽에서 일어나는데 Lexeme 을 찾아서 토큰을 붙여준다.