[컴파일러] - Semantices
CS/컴파일러구성론
2024. 1. 25. 20:51
What do we need to know to compile this? Beyond Syntax CFG는 프로그래밍 언어의 구문 구조를 정의하는 데 사용되지만, 언어의 모든 의미론적 측면(Semantic aspect)을 포착하지는 못한다. CFG는 토큰과 그들의 조합으로 구문을 정의하지만, 변수의 선언, 타입 일관성, 표현식의 유효성, 메서드 호출의 적절성 등과 같은 의미론적 규칙은 포함하지 않는다. 이러한 의미론적 규칙은 컴파일러나 인터프리터가 소스 코드를 분석하고 실행 가능한 프로그램을 생성하는 데 필수적임 의미론적 규칙의 예: 변수 선언 확인: 프로그램에서 사용되는 모든 변수가 선언되었는지 확인 표현식 내 타입 일관성: 연산자와 피연산자 간의 타입이 적절히 일치하는지 검사 할당 가능성 검사: x ..