我想做以下事情。我已经在我的程序中声明了一个结构,并且在程序执行时的运行时,如果有用户输入,我应该能够在我的代码中创建另一个新结构/编辑该结构。我们怎么能做到这一点?这就是“自我修改代码”吗?请澄清。请举一些例子。谢谢
让我想一下我想做什么,我有一个名为“student”的“结构/类”,其中包含“int roll_no”和“int reg_no”等变量。如果用户希望在运行时添加一个像“char name”这样的新变量,该怎么做?
我想做以下事情。我已经在我的程序中声明了一个结构,并且在程序执行时的运行时,如果有用户输入,我应该能够在我的代码中创建另一个新结构/编辑该结构。我们怎么能做到这一点?这就是“自我修改代码”吗?请澄清。请举一些例子。谢谢
让我想一下我想做什么,我有一个名为“student”的“结构/类”,其中包含“int roll_no”和“int reg_no”等变量。如果用户希望在运行时添加一个像“char name”这样的新变量,该怎么做?
看看这个:
http://bracha.org/Site/Talks.html
有关于反射的讨论,这可能是您想要的 - 反射不仅是关于自省(大多数开发人员已经知道),而且还涉及改变语言结构和运行时代码操作的含义。
这类东西的最佳语言可能是 ruby 和 smalltalk。
如果您的语言不支持这些功能,您仍然可以选择利用代码生成 - 这在几乎所有编程语言中都是可能的,但在具有“eval”支持的动态语言中要容易得多。例如,这种东西即使在 C/C++ 中也是可能的,但你的应用程序必须嵌入编译器。
Java 也是不错的选择(感谢类加载器和许多用于字节码操作的库)
哦,我差点忘了,看看 lisp 和 metacircular 评估。
听起来您不需要修改现有代码,而是在运行时发出一些新代码。在运行时存在编译器的任何环境中都很容易做到这一点。对于 .NET、基于 JVM 的环境、各种 Lisps 等来说都是如此。