20世纪60年代是一个社会和文化动荡的时代。冷战、民权运动、反战示威、女权运动、学生反抗、“权力归花运动”、静坐抗议和左翼激进叛乱,但隐藏其中—几乎没有被注意到—有一门新科学在西方的大学校园里应运而生,甚至在非西方世界的一些地区虽更为初步但也出现了。
这门科学的核心是一种新型机器:电子数字计算机。围绕这台机器的技术有多种名称,最常见的是“自动运算”、“自动计算”或“信息处理”。在讲英语的国家与地区,这门科学被称为“computer science”,而在欧洲,它被称为“informatique”或“informatik”。
自动计算的技术理念—设计和制造能够在最少人工干预情况下进行计算的真实机—至少可以追溯到19世纪初英国数学家查尔斯·巴贝奇的痴迷梦想。20世纪30年代末,英国逻辑学家艾伦·图灵和美国逻辑学家阿隆佐·丘奇首先研究了计算的数学概念。但是,真正的计算经验科学的推动力要等到20世纪40年代发明、设计和实现电子数字计算机之后,也就是第二次世界大战刚刚结束之后。即便如此,此时仍存在一段酝酿期。直到20世纪60年代,大学开始提供计算机科学的本科和研究生学位,第一代受过正规培训的计算机科学家走出校园,一门拥有自己名称和身份的自主科学才开始出现。
自1946年电子数字计算机问世以来,与这台机器相关的技术(现在一般称为“信息技术”或“IT”)以及相关的文化和社会变革(一般表述为“信息时代”“信息革命”“信息社会”)的惊人增长是有目共睹的。事实上,我们几乎被这种技术社会环境吞没了。然而,作为以技术为基础的科学—知识学科—在专业的计算机科学社群之外是不太可见的,当然也不太为人所知。然而,计算机科学无疑与分子生物学和认知科学一样,是第二次世界大战后最重要的新科学之一。此外,计算机科学有一种特殊性,它吸引了人们的注意力,并将其与所有其他科学区分开来。
我写这本书的目的,是为那些对科学思想和原理非常感兴趣的求知欲强的读者提供理解计算机科学基本性质的基础,以丰富对这门奇怪的、历史上独一无二的、意义重大的、仍然崭新的科学的理解。简而言之,本书力求以直接、简洁的方式回答这个问题:什么是计算机科学?
在我们继续讨论之前,需要澄清一些术语。在本书中,我将使用“计算”这个词作为动词来表示某种活动;“计算结果”用作名词,表示计算的结果;“计算的”被用作形容词;“计算机”是一个名词,指的是进行计算的设备、人工制品或系统;“人工制品”指的是人类—有时是动物—制造的任何东西;“计算人工制品”是任何参与计算工作的人工制品。
最后,必须声明一个警告。本书首先接受这样一个命题:计算机科学确实是一门科学;也就是说,它体现了与科学概念相关的广泛属性,值得注意的是,它包含了对某种现象的本质进行探索的经验、概念、数学和逻辑、定量和定性模式的系统融合。对这一假设的质疑属于科学哲学的范畴,它超出了本书的范围。这里感兴趣的持久问题是计算机科学作为科学的本质,尤其是其独特而显著的特征。