软件从某种意义上说,就是以各种程序设计语言记载、并运行在遍布全球的计算基础设施上的人类思想。人类社会文明程度越高,对软件的依赖越大。人类的思想异化为软件,但我们自身却迷失在软件所营造的异度空间中。软件的逻辑就是以言行事的逻辑,软件程序操控着人造世界,我们就生活在其中。从语言学视角对软件进行分析,有助于我们脱离细节的牵绊,从纯理论看待这个极其复杂的怪物。我们可以借用语言学的语法、语义和语用,把这三个因素表征为三维的坐标系。(1)语义维度我们可以把各类计算模型安排在语义维度上,数学家和计算机科学家已经构造出五花八门的计算理论,比如自动机、图灵机、冯诺曼机、函数式模型、逻辑式模型、并发模型、项重写等等。有许多模型是图灵等价的。(2)语法维度驱动着语法进展的是抽象的力量,抽象带来的语法糖虽然并没有增加计算模型的能力,但它大大提高了描述程序的效率、安全性和可读性。计算模型中控制、数据都可以进行抽象。抽象的基本手段是命名和参数化。历史上的结构化程序设计、面向对象程序设计是两次巨大的抽象语法维度的进展。(3)语用维度计算机语言语用一方面是语义、语法在计算机上实现范畴。另一方面就是软件以言行事的范畴,通过I/O操控外部世界。计算理论认为I/O是非本质的副作用的东西,但这却是人类为什么需要软件的原因。一、程序设计语言中的概念构造,可以比喻为这个理论三维空间中的点。例如类型构造,一般被认为是语法维度的
...
继续阅读
(20)