第十七章 语言与数学
�………

  “一个真正的程序员,他的编程从裸机开始!”

  “一个真正的程序员,不存在面向对象与面向过程之分,也不存在qiáng类型与类型不安全之别,从机器语言到汇编器到编译器到无数高级应用程序,他无所不通!”

  某些回忆闪闪发光。向山已经记不清这是什么人对他说的了。不过,某些“知识”成分的东西却在提醒他,那个人是历史上有名的程序员,是曾经决定了历史面貌的人。

  向山和“这个人”有很深的交情,所以他学到了关于编程的“一切”。

  这东西的本质是“数学”。

  编程,是语言学,也是数学。

  或者说,语言学就是一种数学。

  二战结束的前后,数学家们开辟出了一个被称作“字问题”的全新领域。在这个领域中,一些数学概念被套上“文字”的外衣,用代数结构产生的形式自然的表明着它们自身。数学家们尝试使用语言学的规则玩弄数学。

  1944年,美国逻辑学家,人工智能先驱埃米尔·波斯特就证明了字问题具备不可判定性。

  而在1947年,安德烈·马尔可夫之子,阿纳托利·马尔可夫也不知晓波斯特工作的前提下,做出了一样的证明。

  “语言”之中,存在“不可判定性问题”。这是第一个并非由人类提出、并非出现在计算科学领域的不可判定性问题。

  而与此同时,语言学家也沿着相反的方向,抵达了相同的境界。

  如果说现代语言学起源自费尔迪南·德·索绪尔,那么诺姆·乔姆斯基就是索绪尔之后的高峰。而乔姆斯基除了作为语言学家、哲学家与社会学家广为人知之外,他还可以算是一个数学家。

  他对语言学的研究,甚至被录入了数学史之中。

  “上下文无关语言的语法”和“正则语言的语法”这两个由乔姆斯基创造的领域,在计算机科学理论之中,也有相当的地位。

  遗传学家们同样尊敬乔姆斯基,他们认为,乔姆斯基对语言的研究,或许可以成为破解遗传密码的钥匙——他们可以反推出隐藏在遗传信息中的、“造物主的语言”。

  或者说,遗传化学所遵循的“程序”。

  只要对相关领域的数学有足够深的研究,那么创造一门独有的语言,就不是太困难的事情。

  真正难的,是在保证语言对人晦涩的同时,对机器简单易懂。

  越是晦涩的语言,在内功上的优势就越大。侠客就是依靠内功在网络之中、在这个世界隐藏自己的。“语言”是他们所有防线的根。他们大脑的语言机能,与自己的内功高度协同。

  大脑所熟悉的语言越晦涩,内力就越是无迹可寻。

  如若单纯为了内功上的优势,就让计算机的运行效率下降,那就本末倒置了。

  lisp就做不到“晦涩”这一点。它太接近数学了,以至于只要知道了它的入门知识,厉害的数学家就能知晓它的用法。

  c语言是“具备自然语言特征的高级语言”,它的使用人数实在是太多了,所以这一门语言呈现出一种“野蛮生长”的状况,甚至在很短的时间内出现了“语言的流变”现象——这一点就很接近自然语言的演化了。如果世界上出现两块网络相对封闭的区域,那么c语言甚至有可能演化出“方言”。

  向山不管是哪边都很熟悉。

  在内功的领域,这就一法�