摘要:汇编语言登场:早期的程序员大佬们,用机器语言这种最原始的工具,艰难地写出了第一个汇编编译器。汇编语言可以看作是机器指令的“英文缩写”,虽然还是很底层,但已经比0和1友好太多了。
你有没有想过一个问题:世界上第一个C语言编译器,它是用什么语言写的?
要解开这个谜团,我们得回到计算机的起点
CPU真正能读懂的,只有由0和1组成的机器语言。这是所有故事的基石。
那么,第一步是怎么走的呢?
汇编语言登场:早期的程序员大佬们,用机器语言这种最原始的工具,艰难地写出了第一个汇编编译器。汇编语言可以看作是机器指令的“英文缩写”,虽然还是很底层,但已经比0和1友好太多了。
高级语言的“老祖宗”:有了汇编语言这个更强大的工具后,大神们就可以用它来编写更复杂的程序了。于是,世界上第一个C语言编译器(我们叫它“老祖宗”版)就是用汇编语言写出来的。
关键一步:自举:现在,好戏开始了。我们可以用这个汇编版的“老祖宗”C编译器,去编译一个用C语言本身写的新编译器。一旦成功,我们就得到了一个“纯种”的、用C语言自己编译自己的编译器。从这时起,我们就可以扔掉那个汇编版的“老祖宗”,实现“自举”了。
不光是C语言,像Pascal、Fortran这些早期的高级语言,几乎都走了同样的路:用一个更早、更基础的语言,来生下自己的“第一个孩子”。
大神们如何“滚”出编译器?
听到这,你可能会有一个疑问:用汇编写一个C语言编译器?这得是多浩大、多反人类的工程啊?可能吗?
答案是:不仅可能,而且大神们真的做到了。早期的Unix操作系统、求伯君写的WPS、风靡一时的Turbo Pascal,最初版本都是直接用汇编写成的。那个时代程序员的硬核能力,确实超乎我们想象。
但更普遍、更聪明的方法是“滚雪球”式的迭代开发,也就是“自举”的完整实践:
步骤1:先定义一个C语言的最小子集,比如叫C0,它只包含最核心的几个功能。步骤2:用汇编语言,写一个能编译这个C0子集的迷你编译器。这个工作量就小很多了。步骤3:现在,我们可以用C0来写一个功能更强大的编译器,它支持C1(比如C0加上指针)。然后,用我们手头的C0编译器来编译这个新的C1编译器。步骤4:如此循环,像滚雪球一样,用C1写C2的编译器,再用C2写C3的……功能越来越强,最终“滚”出一个功能完整的C语言编译器。这个过程,我更喜欢叫它 “迭代优化” 。它把一座看似无法攀登的高峰,分解成了一个个可以拾级而上的台阶。
从编译器到应用开发的能力平权
“自举”的思想,其实早已超越了编译器领域,成为推动整个软件开发进化的核心哲学。它的本质就是:用高级工具来构建更高级的工具,不断把底层复杂的活封装起来,让创造的门槛一降再降。
今天,我们正把同样的逻辑应用到应用软件本身的开发上。我们致力于让不是程序员的人,也能快速构建出自己需要的管理系统。
正是在这个背景下,像云表这样的无代码开发平台出现了。它做的事情,和当年的“自举”有异曲同工之妙:
平台本身:云表这个复杂的平台,可以看作是那个用Java/C++等高级语言编写的“母体”或“老祖宗编译器”。开发方式:它倡导一种叫做“表格编程”的技术。你不用关心数据库、算法这些底层实现,就像用Excel画表格一样,通过拖拽、中文配置这种陈述式的方法,告诉计算机你需要什么样的单据、流程和权限。实现“自举”:一旦这个“母体”建成,业务人员、管理者就能利用它,无需编写一行代码,“自举”出属于自己的ERP、CRM、WMS等全套企业管理软件。这带来了几个显而易见的好处:
门槛极低:像用Excel一样操作,业务人员自己就能上手,彻底打破了代码的壁垒。效率奇高:通过配置而非编码,搭建系统的速度是传统开发方式的数倍。灵活性强:业务一变,系统能跟着快速调整,而且能作为企业级平台,集成现有系统,打通数据。小结
回过头看这条清晰的主线:从最原始的0和1控制CPU,到用C语言抽象出系统级的能力,再到今天我们用无代码平台直接定义业务流程。这整个过程,核心就是一个不断封装复杂性、将构建的能力不断交付给更广泛群体的故事。
技术进步的最终目的,不是让工具变得更神秘,而是让创造变得更简单,让每一个有想法的人,都能成为自己数字世界的建造者。
对此,您怎么看?非常欢迎您在评论区补充观点或者干货。
文|胖胖
来源:云表平台