2009-08-31 3 views
6

교육용으로 파서 - 생성기를 작성하고 작성 방법을 설명하는 멋진 온라인 리소스 또는 자습서가 있는지 궁금합니다. 잭 크렌 쇼 (Jack Crenshaw)가 쓴 "컴파일러를 만들어 봅시다"라는 문장에 뭔가가 있습니다.파서 - 생성기 작성을위한 온라인 리소스

LR (1) 문법에 대한 구문 분석기를 작성하고 싶습니다.

나는 액션과 고토 테이블 생성에 대한 이론을 잘 이해하고 있지만 구현에 도움이되는 리소스가 필요하다.

기본 언어는 C/C++, Java이지만 다른 언어도 괜찮습니다.

감사합니다.

답변

8

나는 다른 사람들과 동의하며, 드래곤 북은 LR 파싱을위한 좋은 배경이다.

MetaII Compiler Tutorial

:

당신은 재귀 하강 파서에 관심이 있다면

, 엄청나게 재미있는 학습 경험 자신과 다른 언어를 컴파일 할 수있는 완전히 독립적 인 컴파일러 시스템을 구축하는 과정을 안내합니다이 웹 사이트이며,

이것은 Val Schorre가 작성한 놀라운 10 페이지짜리 기술 논문을 바탕으로합니다. META II : 구문 지향 컴파일러 언어을 정직에서 신 1964로 작성했습니다. 1970 년에이 컴파일러를 빌드하는 방법을 배웠습니다. 컴파일러가 스스로를 재생성하는 방법을 마침내 깨우치는 순간이 있습니다.

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

1

실제로 온라인이 아니지만 Dragon Book에는 LR 구문 분석에 대한 상당히 정교한 토론이 있습니다.

2

파이썬 경로를 사용하려면 다음을 권장합니다.

  • Text Processing in Python
  • Pyparsing
  • 나는 매우 도움이 될이 두 가지를 발견했다 폴 맥과이어는 대한 파싱의 저자는 당신이 문제로 실행할 때 당신을 돕는 슈퍼입니다

      . 책 Text Processing in Python은 핑거 팁을 가지고있는 편리한 참고서이며 파서를 만들 때 올바른 마음의 프레임에 들어가게 해줍니다.

      또한 OO 언어는 확장 성이 있고 다형성이 올바른 방식 (IMHO)이므로 언어 ​​구문 분석 엔진으로 더 적합하다고 지적합니다. "xyz가 끝날 때 세미콜론을 찾으십시오"보다는 상태 머신이라는 용어로 문제를 살펴보면 파서가 결국 더 강력해진다는 것을 알 수 있습니다.

      희망이 도움이됩니다!

    0

    LR 파서를 작성하는 것을 배우기 전에 재귀 - 하강 파서를 작성하는 법을 배우는 것이 더 쉬웠다. 음, 필자는 오랫동안 파서를 작성한 후에 LR 파서를 작성해야한다는 사실을 결코 알지 못했습니다.

    최근 재귀 적 파싱 구문 분석 기술을 설명하는 Implementing Programming Language Tools in C# 4.0이라는 CodeProject의 자습서를 작성했습니다.

    관련 문제