Sto*_*yte 1 c c++ eval compilation
昨天我和我的一个朋友开始讨论这个问题.他习惯于使用具有eval函数的解释语言(AS3,PHP)进行编码,并习惯使用编译语言(如C++).然后,我试图向他解释,在编译语言中使用eval功能是不可能的,因为本机代码对其源代码(变量,语法,反射(在C/C++的情况下)等)一无所知,并且这样,你就不能让任何函数在没有编译的情况下实时执行源代码(并且要编译它,你需要其余的源代码,所以这是不可能的).
你怎么看?这个论点足够坚固吗?您是否会提出任何其他论据来论证为什么编译语言不能具有eval功能?(请不要发布任何内容,也不要反对eval的想法).
Tho*_*mas 18
编译语言可以有eval,但二进制文件也需要包含或访问编译器.
如果evaled代码要与编译的代码交互,则二进制文件中的一些注释(例如变量名,类名,函数名,类型)是必需的.Java .class文件是一个很好的例子,其中仍然可以从编译的代码中收集大量信息.