计算机程序语言的“主客群”

发布于: iPhone转发:0回复:0喜欢:0

计算机有通用和非通用之分,算盘就是一种非通用计算机,本文仅讨论前一种。而通用计算机使用的程序语言与数学语言、自然语言都等价于存在,故彼此等价。这三种语言分别对应存在的三种表现:信息、物质和人,分属“主客群”。所以,本文是接着存在的主体分岔,再梳理之下的“主客群”分岔。
程序语言源于希尔伯特判定问题,哥德尔由此证明语言系统的自洽和完备无法共存。图灵及其导师邱奇又用两种具象化的方式重新表述了该定理,且前者的表述方式更具象,容易在物理硬件上实现,也因此成为了现今绝大多数程序语言的模版。
冯诺依曼是希尔伯特的得意门生和曼哈顿计划的参与者,核武器研发需要海量计算。他基于图灵的程序语言,将计算和存储分离,重新发明了计算机,更强的计算力帮助美国先于德国造出原子弹,永久结束了大国战争。
程序语言有三种:lambda演算的函数式,图灵的“数据+指令”和元胞自动机。目前占据主导地位的是图灵的“数据+指令”范式,但其他两种程序语言范式也是图灵完备的,故彼此等价。lambda 演算需要深刻理解并抽象模拟的对象,性属主体,代码深刻简洁高效;图灵范式采用搭积木、打补丁的方法模拟存在,性属客体,代码易懂且扩展性强;元胞自动机通过多个胞体互动实现计算,性属群体,互动法则和样本数据共同塑造黑盒算法。
目前,图灵范式在程序语言中占主导地位。而自洽的语言系统都有完备性漏洞,故存在图灵停机问题。在其余绝大多数可计算问题里,根据能否在多项式时间内完成计算分成两类,二者是否等价仍未知,本文猜测二者等价。可在多项式时间内完成的计算才有必要使用程序语言,且越快越好,最快是O(1)。
占据主导地位的图灵范式属于客体,而“主客群”相生相克。客体后继是群体,图灵式程序语言成熟后,其上涌现了tensorflow之类的神经元模拟组件,而后的GPTs等则可生成高质量代码。群体后继是主体,预期五彩纷呈的神经元结构彼此竞争,发展成熟后将沉淀为少数抽象原理,将催生顶层的函数式程序语言组件。主体后继是客体,函数式程序语言大放异彩后,或由于想象力不及存在,将迎来类图灵式程序语言的再次崛起。因此,往复迭代,螺旋上升。其实,在通用计算机刚兴起的年代,函数式程序语言如Lisp也曾是主流。
而在图灵范式下做程序开发,也有主客群三种进路。主体进路是领域驱动设计,将模拟的存在做抽象,在人与人、功能与功能和现在与未来之间实现解耦,互联网公司大项目的架构师就在做这种工作。客体进路是敏捷开发,抛弃宏大设计、瀑布流程和冗杂文档,快速响应当下需求,快速实现功能,根据外界反馈迅速调整、快速迭代。群体进路是开源社区,其中最典型的是 Linux系统内核,开放全部源码,分散世界各地的程序员共同改代码、共同做测试,程序借助集体智慧完成迭代。这三种进路也相生相克,在不同时空各占据主导地位,当一种进路发展过度,暴露弊端,它的后继者就会顶上,实现迭代升级。由此可以预见:大项目架构师会失手于敏捷开发者,互联网革命里的新秀均成功于此;敏捷开发者在遭遇资源约束时会选择开源,本质上linux和python的创始人就是敏捷开发者;开源项目过于庞杂,就会走向抽象封闭,ios挤压android正是例证。
程序语言作为根,向下分三岔,各岔再分三岔,分形递归,皆是主客群,相生相克。
此文受@量化招财猫 之邀,将自己小十年的量化交易程序开发心得浓缩于此文。感谢@量化招财猫 对自己的点拨,感谢带我走进量化交易世界的恩师们,感谢 bilibili 的 up 主“王木头讲科学”。本文中的纰漏,必定不少,还请大家指教。