答えて
上記の回答に記載されているように、オンラインではなく、ドラゴンブックCompilers: Principles, Techniques, and Toolsのコピーを手に入れてください。最初の版のコピーはあまりにも多くを戻してはいけません。
コンパイラを実装するのに最適な言語としてPerlについて不明な点があります。
いくつかのことは、オンラインで最もよく学習されていないものもあり、コンパイラ設計の複雑さのいくつかがその1つです。件名に関する書籍のリストについては、this questionをご覧ください。私は同様の質問のロットから無作為に多かれ少なかれそれを選択 - 適した言語としてのperlについては
site:stackoverflow.com compiler design books
のためにそれらのすべてのリストは、Googleを取得するには - はい、あなたはPerlでコンパイラを書くことができ、私は個人的にそれを試してみたいと思わないでしょう。私があなただったら、Pythonのような、少しきれいなものを見てみましょう。
Jack Crenshawは、コンパイラの構築に関する素晴らしいシリーズを書いています - それはhttp://compilers.iecc.com/crenshaw/にあります(例はパスカルにありますが、依然として非常に便利です)。
どこかに浮かんでいるCバージョンもありますが、atmへのリンクが見つかりませんでした(他の誰かが記事のすべてのコードをANSI-Cに移植しました)。
私はそれがyaccを持っているかもしれないと思ったので、私はもともとperlを学んだ。
これはありません。
この種の動作を追加するモジュールがあると確信していますが、Perl 6はこの点でより良いかもしれません。代わりにlexとyacc(またはbison)を勉強するのがよいでしょう。
私はまだperlを学んだのがうれしいです。
Software optimization resourcesは、コンパイラを設計する前に読んでおく必要があります。コード最適化に関する重要な文書があります。
このリンクは質問に答えるかもしれませんが、答えの重要な部分をここに入れて - [レビューの投稿](/ review /低品質の投稿/ 17231843) –
反対意見:ドラゴンブックは非常に難読ですが、コンパイラの構築、再帰的な降下の最も簡単な方法については詳しく説明していません。避ける。 –
@Neil、私はそれが簡単な読書ではないことに同意するだろうが、カバーをカバーするための読書の本ではない。コンパイラの設計に顕著なトピックがたくさん含まれています。それが持っている年数の間、この本がコンパイラの聖書であった理由があるに違いありません。 ( - : –
)人々はそれを推薦し続けているので、率直には推測することはできません。ほとんどの人はそれを読んでいないと思います。 –