0

私はプロジェクトを開始しており、重要な決定を下す前にちょっとしたガイダンスを探しています。

プロジェクトは、ネットワーク シミュレータです。基本的に、コンピューターのネットワークを表す有向グラフを読み込みます。ネットワークは、ネットワーク全体の動作をシミュレートするアルゴリズムを実行することが期待されています。グラフ上の各ノードは、同じアルゴリズムを実行します。

例: ルート ノードで開始する単純なフラッディング アルゴリズム。各ノードはメッセージを受信し、それを近隣ノードに再送信できる必要があります。

私の問題は、実行する各ノードのアルゴリズムのロードです。ユーザーは、アルゴリズムを使用してテキスト ファイルを作成し、それをプログラムにロードして、各ノードを個別に実行できるようにする必要があります。

テキスト ファイルは任意の形式にすることができますが、C++ 関数としてフォーマットするのが最も簡単だと思います。

私が思いついた唯一のアイデアは、各行を読み取るパーサーを作成することでした。それは難しいだけでなく、ほとんどのアルゴリズムにループが存在するため、うまくいかないと思います。

より詳細な説明を喜んで提供します。

4

1 に答える 1

2

通常、ファイルにコードを記述したい場合は、スクリプト言語を使用します。Luaは人気があります。

アルゴリズムのテキストファイルの解析についての説明は、基本的に独自のスクリプト言語を作成することです(これも一般的に行われます)。

本格的なスクリプト言語は必要ないかもしれませんが、少なくともドメイン固有言語が必要であり、その目的のためにスクリプト言語(サンドボックス化)を使用することもできます。Boost :: Spiritは、ドメイン固有言語パーサーを記述してC++コードに直接埋め込むためのオプションです。

于 2013-03-13T22:37:43.770 に答える