“On Computable Numbers, with an Application to the Entscheidungs-problem”, Alan Turing, 1936。
《论可计算的数》一文是阿兰·图灵于1936年发表的, 这篇论文被公认为是现代计算机科学诞生和独立的标志, 黑客道课程将结合对图灵机计算模型的介绍,讨论计算、逻辑与数学的关系。
“First Draft of a Report to EDVAC”,John von Neumann, 1945。
冯·诺依曼是著名的“冯·诺依曼体系”的提出者,其核心思想后来演变为程序与数据等价的观点。
“Three Models for the Description of Language”, Noam Chomsky, 1956。
乔姆斯基提出了语言处理的有限自动机模型,在语言学、数学、逻辑学、计算科学之间建立了一座桥梁,它是当今编译理论的基础。
“Recursive Functions of Symbolic Expressions and Their Computation by Machine”, John McCarthy, 1960。
麦卡锡是 Lisp 语言的发明人,他提出了基于符号表达式的 lambda 演算的计算机实现方案( Lisp 语言),开创了符号计算的新领域。
“Revised Report on the Algorithmic Language ALGOL 60”, Peter Naur (ed.), 1963。
这篇文章在巴克斯工作的基础上提出了巴克斯—劳尔范式,成为描述编程语言规范的形式化工具。
“PL/I List Processing”,Harold W. Lawson, 1967。
这篇文章首次明确提出了指针变量的概念与实现方式,对以后的计算机软件设计产生了巨大影响。
“Multiple Computer Networks and Intercomputer Communication”, Lawrence G. Roberts, 1967。
这篇文章提出了互联网的模型和原理。阅读时可以参考 “The Past and Future History of the Internet”, Venton Verf, Robert Kahn, et al, 1997。这篇文章回顾了互联网的发展历史和未来的发展趋势。
“Forth --- a Language for Interactive Computing”, Charles H. Moore and Geoffrey C. Leach, 1970。
这篇文章详细地说明了堆栈是如何被引入到编程语言中,并加以利用的, Forth 语言是在软件中倚赖堆栈进行计算的语言, 对后期的许多编程语言有很大影响。
“System R4 Relational”,Dr. Edgar F. Codd, 1970。
这篇文章提出了关系性数据库的思想, 关系性数据库与网络性数据库和层次性数据库是三大数据库流派,目前实际应用中(特别是在企业级别的数据库产品应用中) 关系性数据库产品为主流产品。
“The UNIX Time-sharing System”, Dennis Ritchie and ken Thompson, 1974。
UNIX 操作系统是计算机发展历史上一个划时代的操作系统,而且至今仍然被广泛使用。阅读时可以参考 “The Development of the C Language”, Dennis M. Ritchie, 1996。 C 语言是为开发 UNIX 而发明的编程语言, 兼有高级语言和低级汇编语言的特征, 是目前开发系统软件的首选编程语言。
“Pansystems Methodology: A Transfield Investigation of Generalized System-Transformation-Symmetry”, Wu XueMou, 1976。
吴学谋教授的这篇“泛系方法论: 广义系统—转化—对称性的跨领域研究”是网络型科学诞生的标志。
“The WEB System for Structured Documentation”, Donald E. Knuth, 1983。
高德纳教授是世界著名的计算机科学家, 他对算法理论有非常深入的研究, 他发明的 \TeX{}排版系统是将计算机科学理论与印刷行业完美结合的产物,这一软件导致是现代出版技术革命的发端,它对科技信息的自由传播产生了重大影响。
阅读时可以参考“Literate Programming”,Donald E. Knuth, 1984。 “作文式编程法”是受元数学的方法论影响和启发的产生的, TeX 系统中底层的 WEB 模型是采用作文式编程法开发的第一个计算模型。
“The GNU Manifesto”,Richard M. Stallman, 1984。
《GNU 宣言》是计算机科学家在软件领域道德自省后理性思考的结果,由这一宣言引发的自由软件运动极大地改变了计算机工业的格局。
阅读时可以参考“The GNU Operating System and the Free Software Movement”, Richard M. Stallman, 1999。 开发 GNU 操作系统是自由软件运动核心工程, 是为保护和培养自由软件运动的开发而创建的,其目标是开发一个类 UNIX 的操作系统,以及一个符合 GPL 的完整工具集。 在 GNU 工程发轫后, 它得到了众多黑客的支持,成为目前自由软件运动发展的平台。 本文回顾了自由软件思想诞生的经过,阐明了伟大的 GNU 工程的实质与自由软件思想的精髓,剖析了自由软件运动的发展现状和面临的挑战。
“The Quantum Theory, the Church-Turing Principle and the Universal Quantum Computer”, David Deutsch, 1985。
“量子理论,丘奇—图灵原则与通用量子计算机”。大卫·多依奇的这篇论文正式提出了量子计算的模型, 实用的量子计算机尽管还没有制造出来,但是计算模型已经提出。
“The X Window System”,Robert W. Scheifler et al, 1986。
X 视窗系统是将分布式计算与图形用户界面首次成功结合的产物。
“Information Management: A Proposal”, Tim Berners-Lee, 1989。
这篇论文提出了万维网的计算模型,引发了网络出版的革命。
“The Programming Language Oberron”,NiklausWirth, 1990。
Wirth 教授是 Pascal 语言的发明人。 在总结了 Pascal 语言设计的得失的基础上, 他提出了编程语言可以扩展为完整的操作系统的思想,并开发了 Oberron 来予以验证。
阅读时可以参考“Revenge of the Son of the Lisp Machine”, Matthew Flatt, et al, 1999。 Lisp Machine 是二十世纪八十年代流行的一种计算机体系结构,后因种种原因退出了市场, 但是“编程语言就是操作系统”的思想最近因为硬件技术的飞速发展又开始复苏。 (笔者的 MING/OS 也是受到了这一思潮的影响。)
阅读这篇文章时还可以参读 “Scripting: Higher Level Programming for the 21'st Century”,John K. Ousterhout,1998。随着计算机硬件的飞速发展,计算机系统中的硬件成本大幅度下降,但是软件系统中程序员的成本不降反升,因此如何提高程序员的开发效率是目前的一个主要课题。 脚本语言由于其高度的模块化和对象化, 比系统编程语言更加贴近人的思维特点,因此越来越受到重视。 本文说明了为什么脚本语言将是二十一世纪程序员编程的主要工具。
“Molecular Computation of Solutions to Combinatorial Problems”, L. M. Adleman, 1994。
目前的计算机都是电子计算, 而分子计算机则由于电子计算机无法比拟的超大规模平行计算能力最近受到计算机科学界的高度重视。
“Network Computing in Beowulf Clusters”, Thomas L.Sterling, 1995。
群集计算是利用多台计算机协同工作得到高计算性能的一条有效途径。
“Main Principle of E2K Architecture”, Boris Babayan, 2000。
天才的俄罗斯学者将软件的资源可分割的原理创造性地应用到了计算机通用中央处理器芯片的设计中, 使得系统硬件资源可分割和按需调度,得到了低功耗、抗病毒、高性能的新型 CPU 芯片设计。
“The Anatomy of the Grid”,Ian Foster, et al. 2001。
网格计算是下一代计算机网络发展的主要方向之一,它是以高性能计算机、高性能数据库和宽带通信网络为基础发展起来的。
没有评论:
发表评论