문제

교육 목적으로 파서 제너레이터를 작성하고 싶습니다. 글을 쓰는 방법을 설명하는 멋진 온라인 리소스 나 튜토리얼이 있는지 궁금했습니다. Jack Crenshaw의 "컴파일러를 만들자"라는 줄에 무언가.

LR (1) 문법에 대한 파서 생성기를 쓰고 싶습니다.

나는 행동과 테이블을 생성하는 이론에 대한 괜찮은 이해를 가지고 있지만, 그것을 구현하는 데 도움이 될 자원을 원합니다.

우선 언어는 C/C ++, Java는 다른 언어도 괜찮습니다.

감사.

도움이 되었습니까?

해결책

나는 다른 사람들과 동의합니다. 드래곤 북은 LR 파싱에 대한 좋은 배경입니다.

재귀 적 출신 파서에 관심이 있다면, 엄청나게 재미있는 학습 경험은이 웹 사이트로, 자체적으로 자체 포함 된 컴파일러 시스템을 구축하고 다른 언어를 컴파일 할 수 있습니다.

Metaii 컴파일러 튜토리얼

이것은 모두 Val Schorre의 놀라운 작은 10 페이지 기술 논문을 기반으로합니다. 메타 II : 구문 지향 컴파일러 쓰기 언어 정직한 1964 년부터 1970 년에 이것에서 컴파일러를 구축하는 방법을 배웠습니다. 컴파일러가 어떻게 스스로 재생 될 수 있는지 마침내 집어 넣는 순간이 있습니다 ....

나는 대학 시절의 웹 사이트 저자를 알고 있지만 웹 사이트와는 아무런 관련이 없습니다.

다른 팁

파이썬 경로를 가고 싶다면 다음을 추천합니다.

나는이 두 가지 모두 매우 도움이된다는 것을 알게되었고 Paul McGuire는 Pyparsing의 저자가 문제를 해결할 때 당신을 도와주는 데 슈퍼입니다. Python의 책 텍스트 처리는 손가락 팁을 갖는 편리한 참조이며 파서를 만들려고 할 때 올바른 마음의 프레임에 들어가도록 도와줍니다.

또한 OO 언어는 확장 가능하고 다형성이 올바른 방법 (IMHO)이기 때문에 언어 구문 분석 엔진으로 더 적합하다고 지적합니다. "XYZ의 끝에서 세미콜론을 찾는 것"보다는 상태 기계 측면에서 문제를 살펴보면 파서가 결국 훨씬 더 강력 해짐을 보여줍니다.

도움이되기를 바랍니다!

실제로 온라인이 아니라 용 책 LR 파싱에 대한 토론을 상당히 정교하게 토론했습니다.

LR 파서를 쓰는 법을 배우기 전에 재귀 사막 파서를 쓰는 것이 더 쉽다는 것을 알았습니다. 솔직히 말해서, 수년간의 파서를 쓴 후에, 나는 LR 파서를 쓸 필요가 없다는 것을 결코 알지 못했습니다.

최근에 CodeProject에서 튜토리얼을 작성했습니다 C# 4.0에서 프로그래밍 언어 도구 구현 이는 재귀 하강 구문 분석 기술을 설명합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top