1

나는 SLR(1) and LALR(1) and Reduce이라는 질문을 몇 일 전 물어 봅니다. 일부 교수에게 검색 및 연락을 많이하지만, 제 2 문제는 옳거나 틀립니다. 2 년 내에 입학 시험에 2 가지 질문이 있습니다.SLR (1) 및 LALR (1), 구문 분석 테이블 및 축소 상태에 대한 설명

두 가지 질문은 객관식입니다. 2010 년 우리가 가진 질문 :

1) 다음과 같이 SLR (1) 문법 G가 있습니다. 우리는 솔루션을 선택 SLR (1) 파서 생성기를 사용하여 우리가 사용 G.위한 구문 분석 테이블 S LALR (1) 파서 생성기를 생성하고 G.

S->AB 
A->dAa 
A-> lambda (lambda is a string with length=0) 
B->aAb 

에 대한 구문 분석 테이블 L 그리고 질문 디자이너를 생성합니다 :

Solution: the number of elements with R (reduce) in S is more than L. 

2 년 질문 디자이너 물어 :

2) T1을 가정, T2는 SLR로 생성 (1) 및 LALR (1) 임의의 문법 G. 위해 G는 SLR 될 경우 (1) 다음 중 어느 것이 진부한 문법입니까?

a) T1과 T2에는 차이가 없습니다.

b) T1 비 오류 항목의 총 개수는 T1에서 오류 항목의 갯수가 낮은 T2

c)보다 낮은 T2

보다

해결책 :

(a) is selected by the question designer. 

내 질문 :

any one could describe for me why the solution of 1st question is contradict to 2nd question? 

누군가가 이전 게시물에서 두 가지 해결책이 맞다고 대답했지만 그것을 잘 묘사하지 않았다.

어쨌든 혼란스러워하는 한 전문가를 기다리고 있습니다 !!! Q1에

답변

1

답변 : SLR에 대한 DFA를 만드는 데 필요한 모든

먼저 (1) LALR (1) 파서. 나는 그들 모두를 위해 DFA를 만들었습니다. SLR 용

SLR(1) and LALR(1) DFAs

(1) I는 LALR (1) I 7 개 감소 항목 10 주 최소화되었다 (13 개)의 상태와 CLR (1)을위한 DFA를 만든 반면, 10 개 주 및 10 항목을 감소되었다. Thats가 첫 번째 질문에 대답합니다. Q2에


답변 :

G는 확실히 SLR (1) 테이블에 충돌 (또는 오류) S-R 또는 R-R이없는, (1) 문법 SLR입니다. LALR (1)은 SLR (1)보다 더 많은 전력을 가지고 있으므로 주어진 문법 G에 대해 LALR (1) 테이블에도 충돌이 없습니다. 옵션으로 옵션을 볼 수 있습니다.

(c) : T1 및 T2에 오류가 없습니다. (잘못된 옵션)

(b) : 오류가없는 항목은 항목을 이동하고 항목을 줄이는 것을 의미합니다.구문 분석기에서 구문 분석기까지의 상향식 파서에서는 항목을 줄이기위한 규칙 만 있지만 시프트 항목의 규칙은 동일하게 유지해야합니다. 예를 들어, LR (0)의 경우, 각 열에서 감소 입력이 이루어지며, SLR (1)의 경우 왼쪽 변수의 FOLLOW에서 수행되고 CLR (1) 및 LALR (1)에서는 축소 입력이 미리보기 기호로 작성됩니다. 따라서 항목을 줄이면 파서에서 파서로 변경되지만 시프트 엔트리는 동일합니다.

우리는 이미 SLR (1) 구문 분석 테이블의 축소 항목이 LALR (1)보다 많은 것으로 Q1에서 이미 입증되었습니다. 그러므로 (b) 옵션을 잘못 입증하는 것.

(a) T1과 T2가 같을 수도 있지만 항상 같지는 않을 수도 있습니다. 그리고 다른 중요한 점은 객관식 질문이 때로는 가장 적절한 옵션을 선택하기를 원한다는 것입니다. 따라서 나를 위해 (a) 대답은

입니다.