哪些编程语言为自修改代码提供了最佳支持? 特别是,由于程序需要大量使用自修改代码,我期待能够从内存中删除代码的某些部分,不再需要它们,从而释放记忆。此外,如果能够使用某种序列号识别和索引例程(过程,函数等),这将是一个加号,以便它们可以在运行时在内存中轻松管理(删除,克隆等) 。
答案 0 :(得分:1)
操作系统需要有一些或多或少的“自修改代码”,以便将程序和动态链接库从存储加载到RAM中,然后释放RAM用于其他事情,relocation修复 - 等等 我的理解是,目前C编程语言是编写操作系统最流行的语言。 OSDev.org wiki有很多关于编写新自定义操作系统的技巧,包括对languages suitable for writing an operating system - C,汇编语言,Lisp,Forth,C ++,C#,PL / 1等的简要讨论。
即时(JIT)编译器还需要一些或多或少的“自修改代码”来将源文本编译为本机指令并运行它们,然后释放该内存以供下一次使用点。
也许您可以找到一些操作系统项目或JIT项目,并使用相对较少的修改来使用他们的代码。
有些人,当他们说他们想要“自我修改代码”时,真的需要一种语言支持homoiconicity这样的Scheme或其他方言的Lisp,Prolog,TCL,Curl等。