考虑一下我编写了一个用 C++ 最小化给定函数的程序。 是否可以询问用户要最小化的函数,或者从磁盘上的文件读取此类函数的定义,然后继续最小化它? 将函数定义包含在代码项目本身中很容易,但每次我都必须再次编译代码。我想知道是否可以在编译后和从磁盘上的文件运行可执行文件期间读取函数定义。
如果函数是数学函数
f = a*x+b
,那么您可以将其符号解析为抽象语法树,然后在运行时对其进行评估(查看symengine库)
如果该函数是一个编程函数,那么您要么需要一种脚本语言,如 lua、tcl 或 python 来嵌入到您的可执行文件中,要么需要一个 jit 编译器,如 julia 中的编译器(也是可嵌入的)
最后,如果您可以在应用程序中附带 gcc 编译器,则可以将函数编译为 dll 并在运行时加载它,但这非常麻烦。