第九十七章 灵气宇宙技术史的风格(第2/3页)
哥德尔不完备定理,至今没有被完整的突破过。
因为研究一个类型级别的数学实体,就需要比这个类型更高级别的元数学。
因此,研究涉及无穷超穷的数学实体,就成了需要无穷超穷的元数学。
而直觉主义是不承认“无限的实体”存在的。
就好像物理世界不存在一个“无限实体”一样。
这让形式主义和柏拉图主义的人很难受,但是直觉主义一向是将“数学”看做是人类智慧的有穷构造性活动的。
在计算机日益发达的时代,直觉主义的继承者,就提出了一个全新的口号,还严格定义了出来。
“定义即构造,构造即证明,证明即程序”。
他们打算借用形式主义者开发出的计算机器,来严格化自己的数学哲学思想。
最最严苛的类型系统,是没有循环和自指的。
因而,这个系统,即使是涉及到“无限”的问题,因为并不会造成无限的逻辑回环,所以仍旧可以停机。
因为强规范化的类型系统,都是有穷终结的,也就是一切函数都可以停机并且给出唯一结果。
不存在自我指涉与无限循环这两个停机问题上的幽灵。
这是在牺牲图灵完备的前提下,对停机问题的一次利用。
也就是说,“类型论”是基础数学领域的成就。
而由此衍生的,就是一类绝对可靠的计算机语言:强规范化类型语言。
这种语言理论上不会有因为编程语言设计上的问题而导致的恶性bug,而只会有编程员理解错了设计意图,分析错了设计需求而导致的良性bug。
可说真的,你听说过可以号称“永不出错”的语言吗?
你的Windows没有蓝过屏?你的安卓没有死过机?
世间的万事万物都是有代价的,强规范化类型语言,真的不是一般人能玩的。
没有了图灵完备之后,要写类似于循环执行的东西也不是完全不能写,但是就要成为人力驱动的执行分支预测器。
用心算为基石。一条条地预测推理每个逻辑分支,每个迭代的变化。
而强规范化类型系统本身的框框,也让当时的编程员陷入了活体编译器的泥潭。
真有这种智力水平的人才,又怎么会甘心一辈子当人力编译器不停的造轮子做这种苦累重的循环工作?
而且高智商的人才,是会更加喜欢自由度更大的语言的。
因此除了军用环境这种家国情怀驱动的地方,和航空航天这种为了安全不惜一切代价的场景,才会用上这种语言。
也就是到了今天脑力资源过剩,科研民工甚至是科研房奴已经不新鲜的时代,才会有“将区块链智能合约用可信编程保护起来”这种生意可做。
而图灵完备的,带有循环的编程结构,更加符合人类的使用习惯,并且赋予当时的计算机科学前沿人士发挥想象力的自由度,并且最重要的,降低了编程人员准入的门槛,给编程工韭菜养殖打下良好基础。
这就是早期的工业编程语言了。背好你自己搞出来的那一大堆指针和参数的类型,推算好类型的转换和指针的回收,就不会出事。
在强类型的基础上,将程序员推导类型参数的变化过程,类型推导,交给编程语言的编译器去做的话,就是弱类型了。
而如果进一步将垃圾回收和指针回收都丢给解释器或虚拟机,就从静态语言变成了动态语言。
将这些类型不安全的语言和类型论再杂交一下,就得到了错误捕获。
加上了严格的这种机制的语言就是类型安全语言了:理论上程序出bug了就只会干掉程序,而不会随机游走运行一些无法预测的,甚至是让机主的心血坏掉的恶意代码。
当然,实际上靠谱不靠谱……都是用过那么多年电脑的大家都有数了。
传说中的类型安全+并发安全的Rust,也是到了编程民工满地走的当下才搞出来的,一路走来也磕磕碰碰,至今也没完成对相关特性的形式化验证。
如果从类型论的观点来看的话,那么……王崎之前的万象卦文,应该算是……无类型语言。
从一堆类型不安全的模块经由各种转化规则堆出来的类型不安全,并发也不安全的无类型语言。
无类型语言的自由度高,可以令高等数学的推理过程直接在物理机上实现,且更接近人类的思维习惯。
是的,非常接近于地球上那些通过类型转化规则从有类型活生生堆成的“无需类型”的编程语言,只不过,万象卦文是真的同时具有“无类型”“类型不安全”“并发不安全”的性质。
自由是自由了,但是相对的,这东西也一样不好用。
如果真的发生了编译错误,那么计算机就很有可能输出无法预料的结果,而非直接停机。