又是一个蛋疼的想法,由过程型语言与描述型语言想到
图灵机的计算模型是过程型的,输入的指令需要描述每一步计算过程,即,“怎么做”,想想那些加法器,乘法器的实现就知道了。
但是面向对象的编程语言中,中间有一层抽象——“接口”,却不再理会“怎么做”,只关心,“做什么”。
如果把这个思想稍微往底层移一移,似乎可以得到一种更广义的“计算机”。
把一个程序做的事做一个从上到下的不同层级的抽象区分,最底层的就是几个基本的加减乘除和位操作,而这几个位操作的地方插入了硬件实现,实现了逻辑和物质的对接。
理论上来说,在这个层次图的任何一级,都可以插入硬件,只是这几个基本操作很好地对应了逻辑萌电路,而且表达力也够强。
假设我们能找到一组表达力足够,同时能对应一种比萌电路实现更有效的物质实现,是不是能创造出一种更高效的“计算机”了呢?
更发散一点,可以为lambda演算的几种操作找物质实现,因为他们够简单。
再发散一点,似乎可以不局限于“计算”这种形式,各种问题的求解,如果也按照对应的抽象分级,在某一层找到对应的物质实现,那些大部分的不可计算问题、目前的“非人不可”的工作,似乎都有点希望“自动化”。其实从这个角度看汽车什么的,不也可以对应到这种设想上吗?到了这种地步就看想象力了。
回到计算机,不同的物质实现其实很早就有人设想,像生物计算机,虽然我没看过,但是,如果能找到一种稳定的应对不同输入的生物应激现象,不也是可以拿来做物质实现吗?
同样的很多物理化学现象,甚至不需要那么稳定,能以多少的概率对同样的输入有稳定输出,也是可以接受的,就看能不能快到抵消这种不确定性。
如果要使计算机能在质上超出递归可枚举语言,只能将封装更复杂的计算任务到物质实现,或许也是半人工智能的出路。或许可以出现以人为物质实现单位的超级计算机的科幻场景,这都不能算是计算机了,事实上这似乎就是人类社会的运行模式。
——最近看《奥术神座》这本改编科学史的小说,不禁有点骚动呢。