2009-08-31 9 views
6

パーサージェネレーターを教育目的のために書きたいと思っています。素晴らしいオンラインリソースやチュートリアルがあれば書きたいと思っていますか? Jack Crenshawによる「コンパイラをビルドしましょう」という行に何かがあります。パーサージェネレーターを書くためのオンラインリソース

LR(1)文法のパーサジェネレータを書いてみたいと思います。

私はアクションと後藤テーブルを生成するの背後にある理論をまともに理解しているが、それを実装で私を助けるいくつかのリソースをしたいです。

他の言語でもOKですが、優先言語はC/C++、Javaです。

ありがとうございました。

答えて

8

私は他の人に同意します、ドラゴンの本は、LR解析の良い背景です。

あなたは再帰下降構文解析に興味がある場合は、非常に楽しい学習経験が自分自身をコンパイルすることができ、完全に自己完結型コンパイラシステムや他の言語を構築する手順を説明します。このWebサイト、次のとおりです。

MetaII Compiler Tutorial

私は1970年にこの背面からコンパイラを構築する方法を学びました正直ツー神1964年から構文指向コンパイラライティング言語: META II:

これは、すべてのVal Schorreによって驚くほどわずか10ページ技術資料に基づいています。コンパイラがいかにして自分自身を再生成できるかを最終的に突き詰めると、瞬くような瞬間があります。

私は大学時代からウェブサイトの著者を知っていますが、ウェブサイトとは関係ありません。

1
本当にオンライン

ないが、Dragon BookはLR解析のかなり精巧な議論があります。

2

あなたがPythonのルートに行きたい場合は、私は以下をお勧めします。

  • Text Processing in Python
  • Pyparsing
  • 私は非常に有用であることがこれらの両方を発見した、ポール・マクガイアはpyparsingの作者は、問題が発生したときにあなたを助けることで、スーパーで

      。 「Pythonでのテキスト処理」という本は、指のヒントを手に入れるための参考になるだけで、パーサーを作成しようとするときに、正しいフレームに入るのに役立ちます。

      私はまた、拡張可能だと多型は、それを行うための正しい方法(私見)であるため、オブジェクト指向言語は、言語解析エンジンとして適していることを指摘します。 "xyzの終わりにセミコロンを探してください"ではなく、状態マシンで問題を見ると、パーサが最後にはるかに頑強になることが実証されます。

      希望すること!

    0

    LRパーサーを書くことを学ぶ前に、再帰的降下パーサーを書く方が簡単にわかりました。まあ正直なところ、パーサーを何年も書いた後、私はLRパーサを書く必要がないことは決してありませんでした。私は最近、CodeProjectのでチュートリアルを書いた

    は再帰下降構文解析手法について説明しImplementing Programming Language Tools in C# 4.0と呼ばれます。

    関連する問題