Semantic analyzer (의미분석) - 프로그램의 semantics은 "meaning" 이다. - 구문적으론 올바르지만 의미상 틀린 것 - 일치하지 않는 Type, 선언되지 않은 변수 사용, 잘못된 인수로 호출된 함수, access 위반 등 확인 - syntax tree에 주석 달기 -> type 정보(attribute) 포함 - tree의 할당이 적절한지 확인 ex) integer가 맞는가? - 프로그램의 syntactic 구조를 알면, 컴파일에 필요한 추가 정보를 계산한다. - 언어의 의미를 지정하기 위해 사용되는 표준 방법은 없다. -> 알고리즘은 parsing 알고리즘만큼 명확하게 표현되지 않는다. Attribute and binding - Attribute 프로그래밍 언어 구조의 모든 ..