特に反復的なコード生成を生成するための、C/C++ 用のテンプレート ベース コード ジェネレーターに関する提案はありますか? (UML / MATLAB モデルベースまたはその他の高度なものではありません)。この分野の初心者にとって、良い一般的なチュートリアル (ツールベースではない) はありますか?
GNU Autogenは良さそうに見えますが、急な学習曲線が必要なようです。IDE のような Eclipse 用のプラグイン、使いやすく、最も重要なことに優れたチュートリアルが望ましいです。
特に反復的なコード生成を生成するための、C/C++ 用のテンプレート ベース コード ジェネレーターに関する提案はありますか? (UML / MATLAB モデルベースまたはその他の高度なものではありません)。この分野の初心者にとって、良い一般的なチュートリアル (ツールベースではない) はありますか?
GNU Autogenは良さそうに見えますが、急な学習曲線が必要なようです。IDE のような Eclipse 用のプラグイン、使いやすく、最も重要なことに優れたチュートリアルが望ましいです。
コード生成の基本的な概念は非常に単純であり、人々のニーズは非常に多様であるため、かなりの数のオプションが存在します。
お客様のニーズと使い慣れたツールについて詳しく知らなければ、これ以上具体的な推奨事項を提示することはできません。
私は、Eclipse プラグインを提供するものに精通していません。
Python を知っている場合、Cog は軽量ソリューションと見なすことができます: http://www.python.org/about/success/cog/
パーティーに遅れましたが、Codeworkerをお勧めします。これは、上記のツールが実行するすべてのことを実行できる唯一のツールです。組み込み生成用の Python Cog のような機能があり、Templet や Pump のようなテンプレート ベースの生成があります。また、保護された領域のかなり便利な機能があるため、必要に応じてコードをカスタマイズして再生成できます。
SQL、config、javascript などのプロジェクトの構成だけでなく、すべてのボイラー プレート C++ コードの生成にも使用しました。
このタスクには、Templetや他の無数の Lua ベースのプリプロセッサの 1 つと一緒に Lua を使用することに感謝しています。Python のようなものよりも Lua を使用する利点は、必要に応じて、ソース コードをテンプレート プロセッサに含めて、基本的な Lua インストールを出荷するものと一緒に含めることができることです。その後、通常どおり、Lua および後続のテンプレート ファイルのコンパイルをビルド プロセスに追加できます。
Python ベースのソリューションを使用しないことをお勧めします。その理由の 1 つは、さまざまな Python を使いこなして、すべての開発者が完全に異なるが互換性のないバージョンを使用することを満足させることです。ツリーに組み込むことができない言語を使用することを選択した場合は、事前に計算されたバージョンが利用可能であることを確認する必要があります。
Eclipse ベースの軽量テンプレート ジェネレーターである M2T-JET を使用するJava クラスに関する同様の質問に対する私の回答を参照してください。JET は言語にとらわれず、この例から非常に使いやすいことがわかります。