自我复制的程序
从前我也碰到过这个问题,但是忘记是否解决过了。虽然Knuth的感召下读过三本TAOCP,却再也在算法上刻苦钻研下去。今天编程序,大都是面向事务的处理,算法和效率的问题已经生疏许多了:
记得当初学C的时候,书上的一道习题是要求写一个自复制的程序,就是其输出的东西和源码一模一样,当时想扁了头,还是没想/试出来,最后还是在Ken Thompson的Turing Award 演讲中找到了一个答案。所以在某种程度上讲,我的C不及格。—-[思归呓语]
仔细想想,也许还可以比比看哪一个是最短的自复制程序,不过今天这些高级语言和汇编层次的病毒代码都没办法相比。起码汇编程序可以一边读自己的内存,一边把自己MOV到另一个地方继续执行。10年前编写的“次声波”病毒只有500个字节,只不过永远都不可能发出次声波,把整个实验室的286都搞得呜咽乱叫。那绝对是一个良性病毒,自我暴露也就决定了短命。