- 締切済み
プログラムの構文変換
私は、卒業研究に『ルールセットをパケットフィルタ論理検証システムに対応するように文法変換する作業を自動で変換するシステム』というのをテーマにしたのですが、肝心の文法変換についていい方法が見つかりません… ちなみにプログラムはPythonを使用する、というところは決まっています。 基本的に、プログラムを自動変換させるには、どのような方法が適しているのでしょうか?? 誰か詳しい方がいらっしゃいましたら、ヒントでもよろしいので教えていただけませんでしょうか??
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- unya_unya
- ベストアンサー率54% (19/35)
プログラムを自動変換するには、一般には、もとのプログラムの構文解析、意味解析、評価器の設計などが、必要になります。 Cソースが必要であれば、No.1さんのおっしゃるように、yacc/lexを使うのが常道でしょう。 Pythonにも構文解析を行うライブラリは数多くあるので、調べてみてください。 ご参考: http://www.ibm.com/developerworks/jp/linux/library/l-spark/index.html http://www.ibm.com/developerworks/jp/linux/library/l-simple/ もしも、構文解析などの言語処理自体に明るくないようでしたら、まずそこから勉強なさった方がよいと思います。 この本なんかは、初心者向けで読みやすいです。 ・コンパイラの理論と実現 ・ISBN4-320-02382-X ・共立出版 ・疋田輝雄・石畑 清 著
- splwtr
- ベストアンサー率16% (75/461)
ANo.1さんと同じ意見です。 パケットフィルタ論理検証システムへのルールセットは決まっていて、変更不可能なんですよね? 文法変換の前に、文法定義が必要です。(決めてください) 文法定義は、BNF記法で定義できますので、これを調べたらどうですか? 従来のルールセットより、斬新的で使いやすくなると良いですね。
- lv4u
- ベストアンサー率27% (1862/6715)
>>基本的に、プログラムを自動変換させるには、どのような方法が適しているのでしょうか?? 通常、この手の処理は、Yacc/Lex等を利用すると思います。生成されたC言語のソースに、自分でコーディングしたソースを組み合わせます。わりとハードルが高いジャンルですが、やってみると面白いです。 >>ちなみにプログラムはPythonを使用する、というところは決まっています。 Pythonでできるかどうか不明ですが、生成されたCソースファイルを参考にして、Pythonのコードを作るという方法があるかもしれません。ちなみに、生成されたCソースは、やろうとすることが単純ならいいのですが、複雑な場合「こんなの読めるか!!」っていう気分になります。