Reflection 自我修改代码和反射之间的区别是什么?

Reflection 自我修改代码和反射之间的区别是什么?,reflection,computer-science,self-modifying,Reflection,Computer Science,Self Modifying,是“在执行过程中更改自己的指令”的代码。这通常不是在汇编语言或病毒之外完成的 只是程序动态访问自己的名称空间的能力,以便动态引用函数、类和变量。根据这一点,反射不仅是内省(程序检查自身的能力),而且是调解(程序修改自身的能力) 那么,反射指的是一种温和形式的自修改代码,其中只有变量/类/函数名在指令中得到“修改”,这有什么区别吗?也就是说,与在自修改代码中修改整个指令本身的能力相比,反射是一种更温和、更少“戏剧性”的修改形式 我有这个区别吗?没有,一个是关于在执行过程中更改代码。另一个是关于在执

是“在执行过程中更改自己的指令”的代码。这通常不是在汇编语言或病毒之外完成的

只是程序动态访问自己的名称空间的能力,以便动态引用函数、类和变量。根据这一点,反射不仅是内省(程序检查自身的能力),而且是调解(程序修改自身的能力)

那么,反射指的是一种温和形式的自修改代码,其中只有变量/类/函数名在指令中得到“修改”,这有什么区别吗?也就是说,与在自修改代码中修改整个指令本身的能力相比,反射是一种更温和、更少“戏剧性”的修改形式


我有这个区别吗?

没有,一个是关于在执行过程中更改代码。另一个是关于在执行期间读取代码的结构和元数据(内省)

它们可以相互排斥。您不需要知道如何修改代码(如果操作系统允许的话)

通常,您可以使用反射以非“正常用例”的方式执行代码,但它仍然是相同的代码。将此与修改代码进行对比

这些目标完全不一致

但是,我想一个例子,他们在一个小的方式交叉是考虑一个函数(f)调用两个其他函数- A,然后B。你可以反映的知识,然后调用B,然后A(从而修改用例(f))。正如您所看到的,它不是在修改代码,而是在修改预期的用例