递归自举其它

£可爱£侵袭症+ 提交于 2020-01-07 17:49:10

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

程序员大概都知道什么是递归吧。

在程序里,递归指一个程序直接或者间接的调用它自己。

自举,看字面的意思,自己把自己举起来。

在程序里常看到的是编译器的自举,操作系统启动的自举。

新版本的编译器是由老版本的编译器编译生成的。

操作系统在计算机加电的时候通过 bootloader 把自己加载进内存进而执行自己。

就像一个人提着自己的头发把自己提起来。

虽然在现实世界是不可能,但是在虚拟世界,却是如此的有趣。

递归有很多有意思的地方,在程序里,明明同样的代码,在不同的时间执行的数据却有不同。

以下开始记流水账了。

MIT 计算机科学系的系徽就是一个 lambda 递归的格式。

lambda 算子,Y 组合子,这些计算机科学相关的东西先不展开了。


installsheild 是用 installsheild 安装的。

哪里不对?好像是先有鸡,还有先有蛋的感觉。

第一版本的 installsheild 如何来的呢?

不负责任的猜一下。

installsheild 一开始一定是其它语言写成的。

这是自举的一个前提,借助第三方的程序来实现第一版的自己。

第三方程序一般叫做桩程序,或者脚手架,bootloader, bootstrap 这类。

至于具体叫什么,看个人喜好。

总之,就是有这么个第三方的程序。

比如,先用 C++ 写第一版的 installsheild。

之后,随着它自身脚本的完善。

就可以自己写自己了。

系统调用的一些接口应该还是会有一部分 C/C++ 代码的吧。


重装系统后没有解压软件,就到网上下了个解压软件。

下载之后才发现是一个 rar 压缩文件。

那么请问,您是想让我怎么用这个解压软件呢?


写一个程序,程序运行中删除自己。

写一个程序,程序运行中清除自己及系统中的一切数据。

这好像是某个病毒。


一条蛇咬住了自己的尾巴。

两条蛇相互咬住了对方的尾巴。

蛇很饿,最后的结果是什么呢?


忘记看的哪个电影了,两个师兄弟见而就是比斗。

一人发明出吸功大法,遇功则吸。

一人发明也化功大法,遇功则化。

两兄弟比斗完再比斗只能靠打麻将了。


小时候听的评书:

项羽力大无穷,提前头发能把自己提起来。

某侠客左脚踩着右脚,右脚踩着左脚,飞出墙外。


keyboard not found, press any key to continue.


我的键盘上有一个按键坏了,这个的按键是()。

好吧,样本足够的时候还是可以推测出来的。


git 管理 git 的代码。

在操作系统里写操作系统的代码。

用 vs 写 vs。

debuger debug debuger。


用编译器编译编译器。

不负责任的猜一下。

C 编译器的第一版本是汇编写的,写好第一个版本后就能用 C 写了。

第一个汇编器是用机器码写的。

不用机器码也行,纸带什么的也可以吧。

总之一个机器能直接执行就好。

虽然纸带之类的也应该有译码器吧。

CPU 里还是少不了翻译这一步。

硅,沙子,物理,数学。


少年,来吧,让我们从沙子里建出个搜索引擎。


第一台照像机的照片是第二台或之后的照像机拍的。


高精度的机床只能生成比它精度低的机床。

那高精度的机床是怎么来的呢?


生产机器的机器。

运行系统的系统。

拟机里面运行着一台虚...


图灵机


宇宙里所有的计算机都运行在宇宙里。

这么说来,宇宙也是一台大的计算机,母体?

这么说来,大爆炸就是加电 bootloader ?

奇点就是没开机了。


计算机真有意思啊!


42


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!