PythonからGoへの基本的なソースコードコンバーターを作成するために、Pythonソースを解析したいと思います。
- どのモジュールを使用する必要がありますか?
- 先に進むべきかどうか?
- 続行する必要がある場合、どのように?
PythonからGoへの基本的なソースコードコンバーターを作成するために、Pythonソースを解析したいと思います。
「先に進むべきか、それともうまくいかないか」という質問については、そもそもなぜこれを行いたいのですか?
それが純粋に学習する演習である場合は、それが価値があるかどうかを私たちに尋ねる必要はありません。あなたは学びたいので、すぐに行ってください。
それが実用的なツールであることが意図されているなら、私の提案はそれをしないことです。このような変換を実行するための強力なツールは便利かもしれませんが、それほど遠くまでは行かないと思います。そのことを念頭に置いて、GoでPythonコードを手動で書き直す方がおそらくより有益です。
これは、Goにコンパイルすることに実際のメリットがあることを前提としています。現在のテストでは、StacklessPythonを使用することでパフォーマンスと同様のコード構造が向上することが示唆されています。
ブーソリューション
GoにコンパイルできるPythonのような言語を作ろうとしていますか?これは、Go固有のこと(Go機能を利用するため)を実行する必要があるため、最も賢明なようです。
pyparsingを見てください。完全なPythonパーサーの例が含まれていますが、おそらくそれはしたくないでしょう。
コンバーター/トランスレーターを段階的に構築したいので、パーサーを段階的に構築したいと思います。そうしないと、ASTで窒息する可能性があります。OK、すべてを解析して、理解できないものを無視することもできますが、それはコンパイラーの優れた動作ではありません。
基本的な算術の解析から始めることができます。
パイレックスソリューション
これはBooソリューションに似ていますが、はるかに困難です。最初にBooソリューションを機能させます。次に、ラッパーコードの生成方法を学び、GoとPythonのパーツが連携できるようにします。
PyPyソリューション
完全なPython-Goコンパイラ?幸運を。あなたはそれが必要になります。
NedBatchelderによって切り上げられたパーサーの良いリストが役立つかもしれません。