LL과 LR 문법의 언어 이론 비교


67

사람들은 종종 LR (k) 파서가 LL (k) 파서 보다 강력 하다고 말합니다 . 이 진술은 대부분 모호하다. 특히, 고정 대한 클래스 케이또는 모든 대한 결합을 비교해야 케이합니까? 상황은 어떻습니까? 특히, 나는 LL (*)이 어떻게 적용되는지에 관심이 있습니다.

내가 아는 한, LL 및 LR 파서가 허용하는 각 문법 세트는 직교이므로 각 문법 세트에 의해 생성 된 언어에 대해 이야기합시다. 하자 에 의해 구문 분석 할 수 문법에 의해 생성 된 언어의 클래스 나타내는 파서를, 그리고 다른 클래스와 유사한.L R ( k )LR(케이)아르 자형(케이)

다음 관계에 관심이 있습니다.

  • (케이)?아르 자형(케이)
  • 나는=1(케이)?나는=1아르 자형(케이)
  • 나는=1(케이)=?()
  • ()?나는=1아르 자형(케이)

이들 중 일부는 아마도 쉬울 것입니다. 나의 목표는 "완전한"비교를 수집하는 것입니다. 참조가 감사합니다.


2
아마도 이것이 당신을 도울 수 있습니다! 문법 계층 이미지
Andrea Tucci

1
@AndreaTucci : 그렇습니다. 그러나 생성 된 언어가 아닌 문법만을 다루고 있습니다.
라파엘

답변:


60

알려진 많은 봉쇄가 있습니다. 하자 봉쇄 및 나타내는 적절한 봉쇄. 하자 ×이 incomparability을 나타낸다.×

하자 , L을 R = k 값 L을 R ( K ) .=케이(케이)아르 자형=케이아르 자형(케이)

문법 수준

LL

  • (0)(1)(2)(2)(케이)()
  • 에스(1)=(1),에스(케이)(케이),에스(케이+1)×(케이)

이들 중 대부분은 Rosenkrantz와 Stearns 의 결정 론적 하향식 문법 속성 에서 입증되었습니다 . 는 다소 사소한 운동입니다. 이 프레젠테이션 테렌스 파르 의해 장소 L의 L ( *를 ) 슬라이드 (13)의 용지 LL-정규 Jarzabek 및 크라우 지크 표시하여 문법 L L의 L의 L을 R , 그 증명은 소소 확장 L의 L의 ⊂의 L의 L ( * )에스(케이+1)×(케이)()아르 자형()

LR 용

  • 아르 자형(0)에스아르 자형(1)에이아르 자형(1)아르 자형(1)
  • SLR(k)LALR(k)LR(k)
  • SLR(1)SLR(2)SLR(k)
  • LALR(1)LALR(2)LALR(k)
  • LR(0)LR(1)LR(2)LR(k)LR

이것들은 모두 간단한 연습입니다.

LL 대 LR

  • (결정 론적 하향식 문법과 왼쪽 재귀 문법의속성)LL(k)LR(k)
  • (간단한 운동)(케이)×에스아르 자형(케이),에이아르 자형(케이),아르 자형(케이1)
  • (모든 왼쪽 재귀 문법)아르 자형
  • (왼쪽 재귀 대 임의 예측)()×아르 자형

언어 수준

LL

  • (0)(1)(2)(케이)()
  • 에스(케이)=(케이)

(케이)()아르 자형()

LR 용

  • 아르 자형(0)에스아르 자형(1)=에이아르 자형(1)=아르 자형(1)=에스아르 자형(케이)=에이아르 자형(케이)=아르 자형(케이)=아르 자형

이들 중 일부는 LR (k)을 도입 한 왼쪽에서 오른쪽 으로 의 언어 번역 에 관한 논문에서 Knuth에 의해 입증되었으며 , 나머지는 LR (k) 문법을 LR (1), SLR (1)변환 하는 것으로 입증되었습니다 . 및 (1,1) Bounded Right-Context Grammars by Mickunas et al.

LL 대 LR

  • 아르 자형(1){에이나는제이|나는제이}
  • ()×아르 자형{에이나는제이|나는제이}
  • 아르 자형(1)=에프

그래도 훌륭한 대답은 이미 찬성했습니다. Frank deRemer가 자신의 원래 LALR 논문에서 LALR <= LR을 증명했다고 생각했을까요? (1969?)
user207421

에이아르 자형(케이)아르 자형(케이)에이아르 자형아르 자형

1
@AlextenBrink 나는 신문을 읽었고 Frank de Remer가 가르쳤다. 그러나 30 년 전이었다. ;-) 모든 세부 사항에 감사드립니다.
user207421

각 불평등에 대한 예제 문법을 수집하는 것이 좋습니다.
o11c

1
@ o11c 나는 단일 답변에 부담을 줄 것이라고 생각합니다. Alex는 필요한 경우 좋은 참고 자료를 제공했습니다. 그는 일부 사람들에게 "쉬운 운동"이라고 말합니다. 독자가 문법을 만들 수 없다면, 특정 사례를 묻는 새로운 질문을 게시 할 수 있습니다.
Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.