-1
이 연습에는 약간의 문제가 있습니다. 이 문법을 감안할 때컴파일러 : 모호한 문법 변경
:
S -> aX | X
X -> aXb | b | eps
A)는 문자열
B)) 문법
C를 캡처 어떤 언어로 말하는 문법을 변경하고 후손을 구축 모호한 것을 보여준다 파서
해결 방법 :
a)
L = {a^n b^n: n >= 0} U {a^n b^m: n=m+1, n,m >= 0} U {a^n b^m: m=n+1, n,m >= 0}
C) 내 문제는 파서를 구축 할 수있는 문법을 변경할 수 있습니다 : 문법이 언어를 캡처
- S -> aX -> ab
- S -> X -> aXb -> ab
B) : 나는 문자열 'AB'와 모호한 보여줍니다. 다른 문법을 시도하지만 모호합니다. 예를 들어이 들어 는 :
- G -> X$
X -> aX' | b | eps
X' -> XB | eps
는 당신이 날 행사에 대한 올바른 문법을 찾거나 나에게 입력을 제공하기 위해 도와 드릴까요? you.undoubtedly다시피
생산량은 X -> a 일 수 있습니다. 비. 그러나이 프로덕션에서는 문법이 파싱 테이블에서 하향식 구문 분석을 위해 충돌을 생성합니다. 다른 작품을 생각하니? – Federico
@federico : 사실,'X -> a | b | ε'; 그렇지 않으면 균형 잡힌 문자열을 사용할 수 없습니다. 그것은 모호하지는 않지만 LL (k)는 아닙니다. LR (k)도 아닙니다. LL (1) 문법은 더 까다 롭지 만 가능합니다. 접두어와 최대 (유한) 길이 접미사로 언어를 분해하는 것에 대해 생각해보십시오. – rici