이 운동에 문제가 있습니다.
G를 λ- 미적분에 대한 다음과 같은 모호한 문법으로하자.
E → v | λv.E | EE | (E)
여기서 E는 단일 비단 말 기호이고, λv.E는 변수 v를 E로 나타낸 추상화를 나타내고, EE는 응용을 나타냅니다.
- LL (1) 문법 G '를 정의하여 L (G') = L (G)이고 G의 모호성은 다음과 같은 일반적인 규칙을 적용하여 해결됩니다.
- 추상화는 올바른 연관성입니다.
- 응용 프로그램은 연관되어 있습니다.
- 응용 프로그램은 추상화보다 우선 순위가 높습니다.
- G '에 대한 LL (1) 구문 분석 테이블과 문자열을 구문 분석 할 때 얻은 구문 분석 트리를 표시하십시오
λv1. λv2. v1v2v1
.
다음 문법을 통해 모호성 설정 우선 순위 및 연관성을 제거했습니다.
E -> EF | F
F -> λv.G | G
G -> (E) | v
생산 E -> EF
은 재귀 적이므로 LL (1)이 아닙니다 . 그러나 내가 얻은 생산에서 왼쪽 재귀를 제거하면 다음과 같습니다.
E -> FE¹
E¹-> FE¹ | ɛ
F -> λv.G | G
G -> (E) | v
요구 사항 1.2를 준수하지 않습니다.
인터넷에서 해결책을 찾았지만 왼쪽 연관성을 유지하는 왼쪽 재귀를 제거하는 것이 불가능한 것 같습니다.
그러나이 연습은 몇 년 전에 컴파일러 시험에 나타 났으므로 정답이 있어야합니다.
도와 주셔서 감사합니다.