2005年02月17日

ミニ言語

  
C#でミニ言語(インタプリタ)を実装しようとしています。ミニ言語といえば、ニクラス・ヴィルトのPL/0が有名ですね。PL/0をgoogleで検索し、参考になりそうなWebページがないか調べてみました。ソースコードを公開されている方もいたようですが、さすがにC#版はなさそうです。ということで、すべて自作するという道を選びました。
まずはInterpreterパターンを使って、構文解析するところを作成。代入文、if文、while文、関数くらいしか無い、本当に小さな言語ですが、思いのほか Expression 部分が複雑になりそうです。BNF を書いたらこの部分が結構な分量でした。まあ、BNFがかければ後は、機械的にクラスわけしてコーディングするだけです。
実行部分は、Commandパターンと、この前勉強した Visitorパターンと が使えそうです。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/14528720