有什么方法可以在运行时编译 C++ 代码吗?
Are there any ways to compile C++ code during runtime?
我为 JavaScript 编写了一个复杂的数学库,它具有从人类可读的数学表达式字符串生成函数的能力。有没有办法在 C++ 中实现运行时生成的等效函数?
您可以执行 C++ 编译器,让它生成共享库并在 运行 时将其加载到您的程序中以 运行 C++ 代码。请注意,详细信息取决于您使用的平台,因为 Windows 和 POSIX 具有不同的加载共享库的机制。
's answer is right, and I recommend looking at the Clang/LLVM 设施。
有一个基本的(不太有用) 教程file here. And a broad tutorial on writing your Language on LLVM。您可以在 C++ 应用程序中加载生成的库。
除非你有一个性能关键组件,否则你可以使用 ChaiScript (注意:我绝不隶属于它或作者)
'compiled language way'就是定义你的语法,构建一个解析器,一个AST(抽象语法树)和interpret/compile那个。执行此操作时,您实际上是在编写自己的 compiler/interpreter,这很有趣。如果你想让它轻松工作,你可以看看boost spirit。
我为 JavaScript 编写了一个复杂的数学库,它具有从人类可读的数学表达式字符串生成函数的能力。有没有办法在 C++ 中实现运行时生成的等效函数?
您可以执行 C++ 编译器,让它生成共享库并在 运行 时将其加载到您的程序中以 运行 C++ 代码。请注意,详细信息取决于您使用的平台,因为 Windows 和 POSIX 具有不同的加载共享库的机制。
有一个基本的(不太有用) 教程file here. And a broad tutorial on writing your Language on LLVM。您可以在 C++ 应用程序中加载生成的库。
除非你有一个性能关键组件,否则你可以使用 ChaiScript (注意:我绝不隶属于它或作者)
'compiled language way'就是定义你的语法,构建一个解析器,一个AST(抽象语法树)和interpret/compile那个。执行此操作时,您实际上是在编写自己的 compiler/interpreter,这很有趣。如果你想让它轻松工作,你可以看看boost spirit。