源代码可以在运行时操纵其他或自身吗?

ali*_*lii 1 java file-io

例如,两个源代码的编写方式是,它们都返回一个数字并打印出一个随机字符串(例如:"我已经死了数字次数"),这个数字次.这里重要的一点是,从一个程序返回的数字是添加到另一个程序的字符串的数字.还应该考虑的一件事是两个程序假设干预其他源代码然后永远运行它.这意味着一个程序的返回值实际上是操纵另一个程序的主要因素.

问题:它是否可行(例如在java中)如果程序可以改变自己的源代码?

dec*_*ion 5

是的,它在理论上是可行的.自修改代码是计算机科学的一个完整分支.

然而,在现实世界中它很少是一个好主意,如果你打算这样做,Java(或其他编译语言)可能不是最好的选择.Javascript,PHP,Python(例如Python的eval()做什么?),Ruby,Groovy等都提供了运行任意代码的方法,它本身可以生成其他任意代码......但是调试,保护,测试和证明是噩梦它正在做正确的事情.

通常情况下,仔细设计程序会更好,正如另一张海报所说,使用数据结构,而不是本机源代码.