質問

教育目的でパーサー ジェネレーターを作成したいと考えています。その作成方法を説明する優れたオンライン リソースやチュートリアルはないかと考えていました。Jack Crenshaw の「Let's Build a Compiler」に似た内容です。

LR(1) 文法用のパーサー ジェネレーターを作成したいと考えています。

action テーブルと goto テーブルの生成の背後にある理論は十分に理解していますが、実装に役立つリソースが必要です。

推奨言語は C/C++、Java ですが、他の言語でも問題ありません。

ありがとう。

役に立ちましたか?

解決

私も他の人に同意します。ドラゴンブックは LR 解析の優れた背景です。

再帰降下パーサーに興味がある場合は、この Web サイトで非常に楽しい学習体験ができます。この Web サイトでは、それ自体と他の言語をコンパイルできる完全に自己完結型のコンパイラー システムの構築について説明しています。

MetaII コンパイラのチュートリアル

これはすべて、Val Schorre による 10 ページの驚くべき小さな技術論文に基づいています。 メタ II:構文指向のコンパイラ記述言語 正直から神へ 1964 年から。私は 1970 年にこれからコンパイラーの構築方法を学びました。コンパイラがどのように自己再生成できるかをついに理解したとき、驚くような瞬間があります...

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

他のヒント

Python の道を進みたい場合は、以下をお勧めします。

これらはどちらも非常に役立つことがわかりました。pyparsing の作者である Paul McGuire は、問題が発生したときに非常に助けてくれます。『Text Processing in Python』という書籍は、手元に置いておくと便利なリファレンスであり、パーサーを構築する際に正しい心構えを身につけるのに役立ちます。

また、OO 言語は拡張可能であり、ポリモーフィズムが正しい方法であるため、言語解析エンジンとしてより適していることも指摘します (私見)。「xyz の末尾にあるセミコロンを探す」のではなく、ステート マシンの観点から問題を検討すると、最終的にパーサーがはるかに堅牢になることがわかります。

お役に立てば幸いです!

そうでもないオンラインが、かなり凝っていのドラゴンブックLR解析の話し合います。

scroll top