我有一个程序将一组语句放入一个变量中,我如何将该代码块(以字符串形式提供给变量)动态地放入当前正在执行的代码中以进行编译和执行。我急切地等待这个解决方案。任何具有此功能的编程语言..如果是,请粘贴此问题的代码
问问题
115 次
3 回答
4
Perl 使这变得简单。
在 Perl 中:
eval q{ print "Hello world!\n" };
或者
$code = ' print "Hello world!\n"; ';
eval $code;
见评估。
请注意,您应该小心从哪里获取代码。您将语言的全部力量展示给为您提供输入的任何人。确保它来自安全的来源。 所谓的“字符串评估”在任何支持它的语言中都是高风险行为。 例如,接受来自 Web 用户的输入并将其作为代码在您的服务器上运行,这只是自找麻烦。
关于 C:C 是一种编译语言,编译器在运行时不可用。另一方面,没有什么可以阻止您在 C 程序中嵌入 Perl 解释器,这将使您在编译的 C 应用程序中运行时编译和执行 Perl 代码。郑重声明,C++ 在同一条船上。它是一种编译语言,编译器不是运行时环境的组件。
至于 Java,有这篇文章:Java 6.0 Compiler API。
于 2012-10-19T10:00:01.863 回答
1
既然你说“任何语言”,我会忽略你的标签。
在 Python 中,这很简单:
code = "print \"hello world\""
exec code
这将打印“hello world”。
C 没有这样的功能,因为编译器在运行时不存在。
于 2012-10-19T09:58:24.367 回答
1
您正在寻找javaScripteval()
函数
于 2012-10-19T09:59:37.637 回答