我有一个程序将一组语句转换为变量, 以及如何将该代码块(作为字符串赋予变量)动态地放入当前正在执行的编译和执行代码中。 我急切地等待这个解决方案。 任何具有此功能的编程语言.. 如果是,请粘贴此问题的代码
答案 0 :(得分:3)
Perl使这很简单。
Perl:
eval q{ print "Hello world!\n" };
或
$code = ' print "Hello world!\n"; ';
eval $code;
请参阅eval。
注意,在从中获取代码时应该小心。您向所有提供输入的人展示了语言的全部功能。确保它来自安全的来源。 “字符串评估”,因为它被称为支持它的任何语言中的高风险行为。例如,接受来自Web用户的输入并将其作为服务器上的代码运行,只是要求灾难。
关于C:C是一种编译语言,编译器在运行时不可用。另一方面,没有什么可以阻止您在C程序中嵌入Perl解释器,这将为您提供从编译的C应用程序中运行时编译和执行Perl代码。为了记录,C ++在同一条船上。它是一种编译语言,编译器不是运行时环境的组件。
至于Java,有这篇文章:The Java 6.0 Compiler API。
答案 1 :(得分:0)
既然你说过“任何语言”,我会忽略你的标签。
在Python中它是微不足道的:
code = "print \"hello world\""
exec code
这将打印“你好世界”。
C没有这样的功能,因为编译器在运行时不存在。
答案 2 :(得分:0)