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