왼쪽 재귀 문법을 허용 할 수 있기 때문에 상향식 파서가 top-down 파서보다 낫다는 것을 알고 있습니다. 왜 우리가 상향식 구문 분석보다 상향식 구문 분석을 선호하는지, 파싱?문맥 자유 문법 구문 분석
3
A
답변
1
이론적으로 말해 LL (k) 문법은 모든 k에 대한 LR (k) 문법의 엄격한 하위 집합이므로 결정 론적 예측 상향식 파서는 결정 론적 예측 하향식보다 엄밀히 더 큰 문법 집합을 허용 할 수 있습니다 파서. 이것은 또한 임의의 LL (k) 문법 또한 LR (k)임을 의미한다.
또한 결정적인 CFL (결정적 푸시 다운 자동 장치에 의해 수용되는 CFL)은 LR 문법이 효율적인 스택 기반 구문 분석을 사용하는 언어와 정확히 일치 함을 의미하는 LR (1) 문법을 가지고 있음을 보여줍니다. 알고리즘.
Unger의 알고리즘, Earley의 알고리즘 또는 CYK 알고리즘과 같은 일반적인 구문 분석 알고리즘을 허용하는 경우 임의의 CFG를 구문 분석하기위한 하향식 및 상향식 메서드가 있습니다. 이러한 알고리즘은 예측 방법보다 훨씬 느릴 수 있으므로 프로그래밍 언어에는 일반적으로 사용되지 않습니다.
희망이 도움이됩니다.
0
우리에게는 byson과 같은 상향식 파서 생성기가 있습니다. 그것들을 사용하면 파서를 수동으로 작성하는 것이 훨씬 간단 해집니다.
또한 재귀 적 파생어는 기본적으로 모든 연산을 오른쪽 연관으로 만듭니다. 이는 연산에 대해 올바르지 않습니다. 다시 왼쪽 연관으로 되돌리려면 구문 분석에 추가 단계가 필요합니다.