Shift-Resolve 구문 분석-질문


10

최근 에 제목에서 언급 한 파싱 기술을 설명 하는 논문을 보았습니다 . 불행히도,이 논문에 사용 된 용어는 제 이해력을 뛰어 넘는 것이므로 구성 알고리즘을보다 직관적으로 파악하려고 노력하고 있습니다. 나는 내가 성공했다고 생각한다 ( 이 프리젠 테이션 은 아하 순간의 원천이었다). 그러나 기술이나 그 안에 포함 된 용어에 익숙한 누군가의 정확성에 대한 검증은 대단히 감사 할 것이다.

나는 해결책에 대한 나의 견해를 설명하고 (정확하다면, 그 기술을 이해하려고 시도하는 다른 사람들에게 도움이 될 수 있다고 생각한다) 나중에 추가 질문을 할 것이다. 오해가 없도록하기 위해 다음 표준 표기법을 사용합니다 : , , , 그리고 종이에서와 같이 규칙을 나타내는 번호 . 그러나 아마도 원래의 논문과는 다른 개념의 이름을 사용할 것입니다.a,b,c,...TA,B,C,...N...X,Y,ZNTα,β,γ,...{NT}Aiωi

또한, 설명 전체에 걸쳐 등가 관계 가 사용된다.κ0

구성

파싱 오토 마톤의 내부 항목 두 가지 종류가있다 : 폼의 간단한 LR (0) 항목 I 전화 시프트 항목 형식과 항목 내가 해결 아이템 이라고 부르는 ; 이것들은 파서에게 심볼을 입력 스트림으로 되돌려 보낸 다음 의 첫 번째 심볼에서 규칙 번호 만큼 줄 이도록 지시 합니다.AiαβAiαβ,m,nnmβ

문법은 규칙 보강 되고 초기 상태에서 시프트 항목 로 구성이 시작됩니다.S0S$S0S$

이제 오토 마톤을 구성하려면 상태 각 항목에 대해 다음 대안 중 하나를 결정하십시오 .q

  1. 아이템이 시프트 아이템 인 경우 , 오토 마톤에 전환 가있을 것입니다 . 여기서 는 의 첫 번째 심볼입니다 .AiαβqXqXβ

  2. 아이템이 완료된 시프트 아이템 , 해결 규칙 을 각 규칙 .AiωBjαAβ,i,0BjαAβ

  3. 항목이 해결 항목 경우 를 의 첫 번째 기호로 사용하십시오 . 인 경우 각 규칙 에 대해 시프트 항목 를 추가하십시오 . 이외 다른 항목 이 를 점 선점 으로 사용하는 경우 자동 전환기에 전이 를 추가하십시오. 모든 해결 항목 은 해결 항목 을 초래합니다 .Aiαβ,m,nXβXNXjωXjωAiαβ,m,nXqXqCiαXβ,m,nqCiαXβ,m,n+1q .

  4. 아이템이 리졸 아이템 경우 미리보기 정보를 제공하지 않고 폐기 할 수 있지만 먼저 해결 아이템 추가합니다. 각 규칙 대한 .Aiω,m,nBjαAβ,m,nBjαAβ

이것은 물론 스케치 일뿐입니다. 실제로, 국가 폐쇄는 먼저 계산 되어야만 전환 / 시프트 및 해결을 처리 할 수 ​​있습니다.

오토 마톤을 shift-resolve 파싱 테이블로 변환하는 것은 사소한 일입니다. 단지, 약간의 변형으로서,이 논문의 저자는 해상도 을 수락 조치로 해석합니다 . 그 결과 오토 마톤을 감안할 때, 단순히 의 이동을 수락 조치로 취급하는 것이 더 편리하다는 것을 알았습니다 .r0,0$

질문

첫 번째는 분명히 위에서 설명한 프로세스가 올바른지 여부입니다.

두 번째는 등가 관계에 관한 것입니다. 동등성 관계 는 완성 된 교대 품목이 보일 때 어떤 해석 항목을 가져올 지 결정하는 책임이 있다고 추측 할 수 있습니다 . 은 LSLR 파서 의 세트 와 매우 유사하게 보입니다. 이 논문은 11 페이지의 "완전한 동등성 관계"를 설명합니다. 이 관계를 직관적 인 용어로 해석 할 수있는 방법이 있습니까? 다른 관계가 있습니까?κκ0FOLLOWLM

그리고 마지막은 갈등 해결에 관한 것입니다. 이 논문은 shift-resolve automaton에서 무엇이 부적절하게 구성되어 있는지 잘 설명합니다. 기존의 LR 파서에서 충돌을 해결하는 방법과 유사하게 이러한 부적합을 해결하는 방법이 있습니까? 같은 수 yacc를 우선 순위와를 통해 스타일의 분쟁 해결은 ShRe 파서 생성기 구현 될?

이 모든 것을 읽으면 감사합니다. 대답은 크게 감사하겠습니다. :)


이 질문을 cstheory로 옮기는 것이 좋습니다. 이 논문은 누군가가 "아마도"(?)를 구현하지 않은 매우 복잡한 알고리즘 인 것 같습니다. 주요 아이디어는 임의의 미리보기와 선형 시간 파싱을 결합하는 것 같습니다 ...? 그러나 더 단순하고 더 표준적인 초 선형 알고리즘을 사용하면 몇 개의 응용 프로그램을 사용할 수 있습니까? 어떤 아이디어,이 접근법으로 어떤 응용 프로그램이 더 잘 작동합니까? 당신은 하나 또는 알고 있습니까?
vzn

1
아주 좋은 이론적 운동 (기술을 보지는 않았지만). LR (k)의 최대 성능을 사용하지 않는 경우가 많기 때문에 실제 영향에 대해 궁금 할 수 있습니다. 이런 종류의 작업에는 두 가지 문제가 있습니다. (1) 알고리즘이 복잡해지기 때문에 여전히 작동하지 않을 때 인간의 마음이 문법을 뒤 틀고 결과를 이해하는 것이 가능합니까? 고도로 정교한 기술이 효과가있을 때는 보람이 있지만 그렇지 않은 경우에는 상황이 더 나빠지는 경우가 종종 있습니다. (2) 일반적인 CF 알고리즘이 선형이 아닌 경우 선형입니다.
babou

답변:


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.