2008-08-29 5 views

答えて

2

私は最近、Pythonでlexとyaccの実装であるPLYを使っています。それを始めるのは非常に簡単で、ドキュメントにはいくつかの簡単な例があります。

解析はすばやく技術的なトピックになり、PLYのようなパーサービルダを使用している場合は、解析アルゴリズムの詳細をすべて知る必要はないことがわかります。

8

ANLTRをお試しください:

ANTLR、言語 認識のための別のツールは、 がでアクションを含む文法 記述から 認識装置、通訳、コンパイラ、 や翻訳を構築するためのフレームワークを提供言語ツールでありますさまざまなターゲット言語の

bookもあります。

alt text

1

は、Javaベースのツールを好む場合は、Javaコンパイラコンパイラ、JavaCCのは、素敵なパーサ/スキャナです。これは設定ファイル駆動型で、プログラムに含めることができるJavaコードを生成します。私はそれを数年使っていないので、現在のバージョンがどういうものなのか分かりません。もっと詳しく知ることができます:https://javacc.dev.java.net/

11

「感情的」を取得したい場合は、「The Dragon Book」のコピーを手に入れてください。 通常はコンパイラデザインコースのテキストです。それは間違いなくあなたの必要性を満たすでしょう "字句解析とパーサーの詳細を学ぶだけでなく、他の束楽しいもの!

IMH(umble)O、自分自身で腕や脚を守り、古い版を購入すると、情報の欲求が満たされます。

1

flexとbisonは新しいlexとyaccです。 BNFのシンタックスは、少し鈍いためにしばしば非難されます。この理由からANTLRとRagelに移った人もいます。

多くの翻訳をしていない場合は、PerlやRubyで複数行の正規表現を使用して1回だけ取り除くことができます。既存の言語に対して互換性のあるBNF文法を書くことは、軽く取られるべき課題ではない。

一方、与えられた言語の.lと.yファイルがオープンソースとして利用可能な場合は、それを完全に利用することができます。次に、既存の解析ツリーから新しいコードを構築することができます。

1

字句/構文解析+です。TypeCheck +コードの生成は、私は強固な基盤を望む誰にもそれをお勧めします素晴らしいCSの運動ですので、私はドラゴンブック

1

さらに別の教科書はProgramming Language Pragmaticsです。私はドラゴンの本よりも好きですが、YMMVです。

あなたがPerlを使用している場合は、考慮する別のツールはParse::RecDescentです。

この翻訳を一度行うだけで、コンパイラ技術について知らなければ、かなり簡単な翻訳をできるだけ手に入れることをお勧めします。はい、それは多くの仕事です。しかし、複雑な課題を学び、1つのジョブに適したソリューションをコーディングするよりも、あまり効果がありません。しかし、あなたはまだその科目を学ぶべきですが、それがあなたの現在のプロジェクトを終えるための障害になっていることを知らないようにしてはいけません。

1

私はこのサイトが役に立ったと評価してい:

Lex and YACC primer/HOWTO

私はLEX/yaccのを使用される最初の時間が比較的単純なプロジェクトのためでした。このチュートリアルは私が本当に必要なものでした。後ほどもっと複雑なプロジェクトに近づいたとき、私はこのチュートリアルと簡単なプロジェクトから得た親しみが私に何か魅力的なものを作ってくれました。

1

私は(かなり)いくつかのコンパイラクラスを取った後、The Dragon BookC&Tの両方を使用しました。私はC & Tは、コンパイラの構築を消化するのにはるかに優れていると思います。ドラゴンブックから何かを取り除くつもりはないが、C & Tははるかに実用的な本だと思う。

また、Javaで書くのが好きなら、あなたのレキシングと解析にはJFlexBYACC/Jをお勧めします。

2

多くの人が本を推薦しています。多くの場合、これらは割り当てや締め切り日などを持つ構造化環境ではるかに役立ちます。そうでない場合でも、材料を別の方法で提示することは大きな助けになります。

(a)適切なCSカリキュラムを持った学校に行くと考えましたか?
(b)MIT's Open Coursewareのようなオンライン講義がたくさんあります。彼らのEE/CS sectionには、解析に触れるコースがたくさんありますが、それ自体は解析できません。それは典型的に、言語分類とオートマトンがCS理論の多くの中心にある最初の理論コースの1つとして導入されています。

+0

+1 mitのocwのために、私は数学のために常にそれを使用します。何らかの理由で、私のschedualでクラスに行くのは6:30に起きるよりはるかに良いです。 – Shawn

1

Parsing Techniques - A Practical Guide Dick GruneとCeriel J.H. Jacobs

この本(PDFで自由に入手可能)は、さまざまな解析技術/アルゴリズムの広範な概要を示しています。あなたが本当に異なる解析アルゴリズムを理解したいのであれば、このIMOはドラゴンブックよりも優れたリファレンスです(解析テクニックは解析に集中しますが、ドラゴンブックはコンパイルのプロセスの一部ですが、 。

+0

あなたのリンクは壊れているようです – Shawn

+0

私はリンクを修正しました:実際のPDF(初版用)はここからダウンロードできます:http://dickgrune.com/Books/PTAPG_1st_Edition/BookBody.pdf; Amazon.co.jpでの返品と交換Amazonについて採用情報会社概要プレスリリースAmazonと地球Amazonでビジネス出品サービス – Gio

関連する問題