언어에 대한 LR (1) 오토 마톤이 해당 LR (0) 오토 마톤보다 얼마나 클 수 있습니까?


10

LR (0) 파서에서 각 상태는 위치로 주석이 달린 프로덕션 인 LR (0) 항목의 모음으로 구성됩니다. LR (1) 파서에서 각 상태는 LR (1) 항목의 모음으로 구성되며, 이는 위치 및 미리보기 문자로 주석이 달린 프로덕션입니다.

LR (1) 오토 마톤의 상태에서 각 LR (1) 항목에서 미리보기 토큰을 삭제하여 구성된 구성 세트는 LR (0) 오토 마톤의 일부 상태에 해당하는 구성 세트를 생성하는 것으로 알려져 있습니다. 그런 의미에서, LR (1) 오토 마톤과 LR (0) 오토 마톤의 주요 차이점은 LR (1) 오토 마톤이 LR (0) 오토 마톤의 상태 사본을 더 많이 가지고 있다는 것입니다. 정보. 이러한 이유로, 주어진 CFG에 대한 LR (1) 오토마타는 일반적으로 해당 CFG에 대한 해당 LR (0) 파서보다 큽니다.

내 질문은 LR (1) 오토 마톤얼마나 클 수 있는지입니다. 문법의 알파벳에 별개의 터미널 기호 가 있다면 , 원칙적으로 우리는 n 개의 별개의 터미널 기호의 서브 세트당 적어도 한 번 LR (0) 오토 마톤의 각 상태를 복제해야 할 수 있습니다. ) 오토 마톤 은 원래 LR (0) 오토 마톤보다 2 n 배 더 큽니다. LR (0) 자동 장치의 각 개별 항목이 다른 LR (0) 항목 집합으로 구성되어 있으면 더 큰 폭파가 발생할 수 있습니다.2

즉, LR (1) 오토 마톤이 해당 LR (0) 오토 마톤보다 상당히 큰 문법 패밀리를 구성하는 방법을 찾지 못하는 것 같습니다. 내가 시도한 모든 것은 크기가 적당히 증가하지만 (보통 약 2-4x) 큰 파열을 일으키는 패턴을 찾지 못하는 것 같습니다.

LR (1) automata가 해당 LR (0) automata보다 기하 급수적으로 큰 컨텍스트 프리 문법의 알려진 패밀리가 있습니까? 아니면 최악의 경우 실제로 지수 폭발을 얻을 수 없다는 것이 알려져 있습니까?

감사!


이와 같은 문제는 때로는 경험적 테스트에 적합합니다. 무작위로 생성 된 (선택된) 폭발을 일으키는 개별 인스턴스에 대해 어떻게 생각하십니까? 이러한 유형의 질문에는 "임의로 보이는"구조가 가장 "복잡성"을 나타내는 패턴이 있습니다.
vzn

2
최악의 사례는 일반적으로 적어도 평균 사례가 훨씬 더 나은 경우 무작위 샘플링으로 찾기가 어렵습니다.
라파엘

추신 : 게시물에 nec가 아닌 어딘가에 2x-4x
블로우 업

아이디어 / 리드 : LR 구문 분석 순열 (cstheory.se)
vzn

LALR (1)은 일반적으로 LR (1)에 가깝게 접근하여 더 적은 수의 상태 (용의 단어를 사용하기 위해)에 유용 할 수있는 방법으로 제공됩니다 . LALR (1)이 발명 될 때까지 2 ~ 4의 단순한 요소만으로 LR (1)을 엄청나게 무시할 수 있었는지 궁금합니다. 그들에 액세스 할 수있는 경우에 나는 그것에 대해 생각한다면, 나는 아호 & Ullman은에보고해야합니다 분석, 번역 및 컴파일의 이론 과 Grune에서 구문 분석 기술을 그들이 숫자에 대해 뭔가가있는 경우.
AProgrammer

답변:


2

문법

에스0+1+1+1

LR (0) 상태

˙
2{01}2/

0 거의 모든 LR (0) 상태에 지수 요소가 제공됩니다. 결과적으로 교대 축소 충돌이 발생합니다.


0

이러한 하한은 때때로 구성하기 까다 롭고 더 깊은 CS 이론을 유발할 수 있습니다 (예 : 복잡한 클래스 분리). 이 논문은 이론적 구성 / 하한을 제시하는 것으로 보인다. 예를 들어 Theorem 5에서는 전체 기호에 대한 하한을 설정하고 따라서 상태도 제시한다. 참고 문헌은 다른 유사한 구성 / 하한도 포함한다.

에프(,케이)=214(케이)/2케이=0,1;...,1에프(,케이)에프(,케이)

파서 및 LR (k) 문법의 크기 / Leunga, Wotschkeb


2(1)/4/22/4/2해당 언어에 대한 LR (0) 자동 크기의 크기에 바인딩됩니다. 따라서이 답변은 묻는 질문에 대답하지 않습니다.
DW

1.1892

DW는 귀하의 반대 의견이 합법적이며 헤어 스플릿에 접근한다고 생각합니다. 설명 / 세부 사항을 위해 너무 많이. 본질적으로 LR (n)의 최악의 언어 구성 / 파열에 관한 그의 질문에 대한 관련적이고 거의 직접적인 과학적 답변 / 체계적인 연구. 이 영역에서 "거의?" "최고의 알려진 결과"일 가능성이 있습니다. 이 질문에 대한 합법적 인 답변은 부정적 일 수 있습니다. 일명 아니오, 질문자가 발견 한 것 (아직 실제로 출품 하지 않았 음 ) 또는 문헌에서 알려진 것보다 더 나은 결과는 없습니다 . 더 확실한 답변을 간절히 기다리고 있습니다 !
vzn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.