Computer Science/Programming :: 프로그래밍언어론

프로그래밍언어론 강의 5화 :: 구문 분석

HJPlumtree 2021. 9. 11. 18:18

프로그래밍언어론 5화를 듣고 배운내용

 

 

프로그램 분석

문자 => 어휘 => 구문

 

토큰: 어휘  분석을 통해 얻어지는 것

=> 연산자, 구분자, 식별자, 예약어 등

 

 

구문 분석

유도

  • 구문 규칙을 이용해서 프로그램을 만드는 과정
  • 유도가 가능하면 문법적 오류가 없는 유효한 프로그램

파스 트리(Parse Tree)

유도를 트리 형태로 나타낸 것

 

구조

  • 루트 노드: 시작 비단말 기호
  • 비단말 노드: 비단말 기호
  • 단말 노드: 단말 기호

끝에 있다 그래서 단말 노드라 그런다

비단말은 밑에 자식 노드가 있다는 뜻이겠네

단말 노드를 왼쪽부터 오른쪽으로 차례로 나열하면 프로그램이 된다.

 

파스트리가 존재하면 구문에 부합하는 표현

존재하지 않으면 오류 있는 표현

 

모호한 문법

동일한 표현에 대해 서로 다른 파스 트리가 만들어지는 문법

 

모호성 제거 => 문법의 명확화

새로운 비단말 기호와 새로운 구문 규칙 추가

연산자 우선순위, 좌결합 연산자, 중첩된 if문의 else

 

 

tree