我听说有些东西作为计算机程序员不能做,但我不知道它们是什么.我最近发生的一件事是:如果有一个类可以复制它运行的程序的源代码,修改该程序并向该类添加一个方法,然后运行,那会不是很好程序的副本并终止自身.代码是否可以编写代码?
dla*_*lin 13
首先看看quines,然后是Macro-Assemblers,然后是lex&yacc,以及flex&bison.然后考虑自修改代码.
这是一个quine(格式化,使用输出作为新输入):
#include<stdio.h>
main()
{
char *a = "main(){char *a = %c%s%c; int b = '%c'; printf(a,b,a,b,b);}";
int b = '"';
printf(a,b,a,b,b);
}
Run Code Online (Sandbox Code Playgroud)
现在,如果你只是在寻找程序员不能做的东西,那就找np-complete的反面.