从文本文件c ++将外部算法加载到程序中

时间:2013-03-13 22:32:29

标签: c++ graph-algorithm

我正在开始一个项目,在我开始做出重大决定之前,我正在寻找一些指导。

该项目是一个网络模拟器。基本上我会加载一个代表计算机网络的有向图。期望网络运行算法以模拟整个网络的操作。图表上的每个单独节点都将运行相同的算法。

例如:一个简单的泛洪算法,从根节点开始,每个节点应该能够接收消息,然后将其重新发送给它的邻居。

我的问题是为每个要运行的节点加载算法。用户应该能够使用算法创建一个文本文件,并将其加载到我的程序中,以便每个节点单独运行。

文本文件可以是任何格式,但我相信如果它们被格式化为c ++函数将是最简单的。

我能提出的唯一想法是创建一个解析器来读取每一行。这不仅困难,而且我认为这不会起作用,因为大多数算法都存在循环。

我愿意提供更详细的说明。

1 个答案:

答案 0 :(得分:2)

通常,如果要在文件中编写代码,则需要使用脚本语言。 Lua是一个受欢迎的。

您解析算法的文本文件的描述基本上就是您创建自己的脚本语言(通常也是如此)。

也许你不需要一个完整的脚本语言,但至少,你需要一个domain-specific language,并且可能也为此目的使用脚本语言(沙盒)。 Boost::Spirit是一个用于直接在C ++代码中描述和嵌入特定于域的语言解析器的选项。