파서 이론에 관한 좋은 책?


9

내 Java 프로젝트 중 하나는 parboiled 포크이며 Antlr 또는 JavaCC와 달리 파서는 런타임에 생성됩니다. 생성 된 문법은 Parsing Expression Grammars 또는 PEG입니다 (다른 용어는 "패킷"이라고 들었습니다).

런타임 생성에는 복잡성이 추가되지만 (바이트 코드 생성 관련) 또 다른 측면은 파서 이론 자체와 관련이 있습니다. 불행히도 컴퓨터 과학에 대한 탄탄한 배경이 없기 때문에 기존 코드를 기존 개념 (이 경우 파서)에 매핑 할 이론적 지식이 부족합니다.

파서에 관한 좋은 참고서가 있고, 인터넷에서 링크를 구할 수 있으며, 이론적 인 지식이 부족한 "매핑"을 만드는 데 도움이 될 수 있습니까?

답변:



3

파서 이론에 대해 배우고 싶다면이 고전 서적 1 권을 추천합니다.

아호, 알프레드 V .; Ullman, Jeffrey D., 파싱, 번역 및 컴파일 이론 , Prentice-Hall (1972).


출판 당시 주제에 대한 백과 사전이었습니다. 그러나 그 이후로 연구가 진행되어왔다.
babou

1

언어 차이가 마음에 들지 않으면 Higher Order Perl의 8 장은 구문 분석에 관한 것이며 특히 구문 분석기 조합기를 사용하여 재귀 강하 구문 분석기를 작성합니다. 액세스 가능하며 (Perl을 두려워하지 않는 경우) 원하는 경우 무료로 읽을 수 있습니다. 그것은 촉발 도움이 다시 기술을 수년을 구문 분석에 대한 관심을.


0

Parsing Techniques는 훌륭한 책이며 몇 번 읽은 부분이지만 LR 구문 분석에 중점을 두므로 흥미롭지 않습니다. 당신의 특별한 경우에, 당신은 대안의 순서에 따라 역 추적을 사용하여 일종의 하향식 재귀 하강 구문 분석 인 PEG를보고 있습니다.

동일한 전략을 사용하는 파서 결합기를 살펴 보시기 바랍니다. 예를 들어 Haskell을 사용하여 파서 조합기를 작성하는 이 백서 ( http://research.microsoft.com/pubs/65201/parsec-paper-letter.pdf) 를 확인할 수 있습니다 . try 역 추적을 포함 하는 부분을 확인하십시오 (3.4 절).

어쨌든, 배워야 할 것은 :

  • 재귀 하강 구문 분석 및 LL 문법
  • 고정 lookahead 대 무한 lookahead (역 추적을 통해 수행)
  • 역 추적 전략
  • 왼쪽 재귀 규칙을 처리하는 방법
  • 지수 행동을 피하기위한 부분 결과의 메모
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.