2013-12-20 2 views
0

이 블로그와 같은 여러 블로그를 실행합니다 : http://mortoray.com/2012/07/20/why-i-dont-use-a-parser-generator/, 어떻게 든 그들은 "재귀 적 파싱"을 사용하여 ANTLR과 같은 수작업 파서와 파서 생성기를 참조합니다.재귀 적 파싱 및 antlr

"재귀 적 파싱 구문 분석"과 ANTLR은 서로 다른 두 가지로, 하나는 일반적인 구문 분석 이론이고 다른 하나는 정확한 기술입니다. 하지만 왜 사람들이 믹싱/비교를하면서 인기가 높은지 궁금합니다.

답변

0

필자 파서는 [E] BNF 정의와 밀접한 관련이 있고 수동으로 확인하기가 쉽고 필요하다면 디버깅하기가 쉽기 때문에 재귀 적으로 파생되는 경향이 있다고 가정합니다. 반대로 ANTLR, Bison 및 나머지와 같은 도구는 일반적으로 재귀 파생 파서를 생성하지 않습니다.

비교가 파서 생성 도구 대 파서 생성 도구에 대한 접근이지만 어쨌든 재귀 적 강하와 필기체는 관용구적인 동의어가되었습니다.

2

재귀 적 파서는 하향식 파서 (LL)의 특정 하위 집합입니다. 재귀 하강 파서 (parser)는 프로그래머가 일반적으로 손으로 작성하는 것으로, 이는 내 손을 구축 할 때 자연스러운 표현이기 때문입니다. 도구는 재미있는 모든 종류의 기계를 생성 할 수 있습니다. 지난 25 년간 ANTLR의 목표는 프로그래머가 손으로 작성한 것을 생성하는 것이 었습니다. 즉, 재귀 파생 파서를 생성한다는 의미입니다. 필연적으로 생성 된 파서는 인간이 손으로 최적화하지 않기 때문에 더 복잡합니다.