プロが教える店舗&オフィスのセキュリティ対策術

言語はC(C++)でコンパイラコンパイラを作っています。
自分の考えが正しいのか分からないので訂正があったらそこを指摘して、最後に聞きたいことがあるのでそれにお答えください。

自分でコードを書くと左再帰になるので、パーサージェネレーターといわれるプログラムを使わなければいけないと理解しています。Cでやるにはyacc/lexがあり今はbison/flexが主流となっています。

ただ、ネットで調べると専門的なのかこのことに触れているサイトが少ない気がします。他に有名なプログラムがあるのでしょうか。

A 回答 (3件)

LR系だと、yaccとbisonが有名/基本なのは確かだと思います。



ただ、昨今はLLのJavaCCとかANTLRとか、
boost::spiritみたいなのも出てきてます。

# サイトという意味では、コンパイラコンパイラ自体がそれほど…
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
boost::spiritの存在を初めて知りました。
調べるとbison/flexよりも評価が高そうですね。
もう少し調べてみます。

お礼日時:2009/02/13 23:06

質問の文章を読んでみて、


コンパイラコンパイラを作りたいのか
コンパイラを作りたいのか
よく分かりません。

コンパイラコンパイラを作りたいなら、
LL(1)文法ですが
コンパイラコンパイラの本がサイエンス社から出版されています。
書名は”コンパイラ・コンパイラ”です。
この本にはソースコードも載っています。
Modula2 で書かれていますが、C言語に書き直したものもネット上で
入手できます。

 コンパイラを作るには
いろいろなコンパイラコンパイラがありますので
それを使えばよいことになります。

参考URL:http://www.saiensu.co.jp/?page=authored_book_lis …
    • good
    • 0
この回答へのお礼

私の書いた質問に不備があることをお詫びします。
私はコンパイラコンパイラを作りたいのです。
方法はたくさんあることを知り、どれがいいもか迷いましたがとりあえずboost::spiritを使おうと思いました。
回答ありがとうございます。

お礼日時:2009/02/14 22:03

コンパイラやらスクリプトインタプリタのサイト自体が少ないですね。


中途半端に掲載終了しているのも多いです。

yacc/lexならこちら↓などいかがでしょう。
http://kmaebashi.com/programmer/devlang/index.html
参考になれば幸いです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にさせていただきます。

お礼日時:2009/02/13 23:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!