《软件故事:谁发明了那些经典的编程语言》

基本信息

作者: (美)史蒂夫.洛尔

译者: 张沛玄

出版社:人民邮电出版社

ISBN:9787115355089

上架时间:2014-6-19

出版日期:2014 年6月

开本:16开

页码:1

版次:1-1

所属分类:计算机 > 软件工程及软件方法学 > 综合

更多关于》》》《软件故事:谁发明了那些经典的编程语言》

编辑推荐

聆听软件行业发展的精彩故事

  领悟软件巨擘的深邃思想

  放飞想象力,通过编码改变世界

内容简介

书籍

计算机书籍

《软件故事:谁发明了那些经典的编程语言》介绍了多种语言和软件的起源以及促进软件行业发展的重大成就,以传记体讲述了埋没于历史洪流却起到了关键作用的编程人员及其贡献,包括“存储式计算”早期出现的女性软件先驱的故事。本书内容主要包括:约翰· 巴克斯发明fortran 语言、约翰· 麦卡锡设计lisp语言、“cobol 之母”葛丽丝· 霍普等人创建cobol 语言、肯· 汤普森与丹尼斯· 里奇开发unix 操作系统和c 语言、托马斯· 库尔兹与约翰· 凯默尼开发basic 语言、本贾尼· 斯特劳斯特卢普开发c++、“word 之父”查尔斯· 西蒙尼研发word、阿兰· 凯伊设计smalltalk 语言、安迪·赫兹菲尔德等研发macintosh、钱柏林等创建sql 语言、詹姆斯·高斯林发明java,等等。

《软件故事:谁发明了那些经典的编程语言》适合计算机相关从业人员及对软件行业感兴趣的读者参考阅读。

媒体评论

  “本书语言流畅细腻,读起来如沐春风。它犹如一部波澜壮阔的计算机史诗,讲述了软件革命的恢弘历史,以及中流砥柱们的光辉事迹。故事并不是断断续续的,因为作者采用了微型传记的形式……他把历史写成了优美的散文,生动迷人又严谨有度。”

  ——David Gelernter,《纽约时报》

  “这是一本给人启迪的著作,完美地展现了想象力的巨大力量。如果你想象得到,并把它编成代码,那么一定能够改变世界!”

  ——Boston Sunday Globe

  “本书把难懂的技术概念讲解得通俗易懂。对于那些对计算机内在结构好奇的人,这是一本能让其豁然开朗的好书。计算机科学界的前辈John McCarthy曾向作者抱怨过新闻记者的无知,本书就是作者对此作出的回应……与计算机行业相关的所有新闻记者都应该读一读这本书。”

  ——《纽约时报书评》

  “这不是一本通常意义上的书,而是一部史诗。它讲述的不是技术,而是那些设计编程语言和计算机软件的名人的故事……本书内容清晰易懂,简明扼要。软件工程让程序员不需要材料和工具也能有所创造,他们为此兴奋不已。他们能够凭空创造新的事物,唯一的限制就是自己的想象力。”

  ——《国际先驱论坛报》

  “如果本书作者是一名程序员,那么他写的代码一定清晰有序,不需要复杂的结构或者奇怪的快捷方式就能跳转到正确的子程序上;他的写作风格也是如此。本书化繁为简,让读者与数学专家、桥牌高手、象棋大师、特立独行的科学家、批判传统观念的人,以及掀起软件革命的程序员们进行了一次愉悦的会面。”

  ——《新闻周刊》

  “本书展现了技术缔造者们面对的挑战,是本旷世杰作。”

  ——《自然》周刊

目录

《软件故事:谁发明了那些经典的编程语言》

第1章 引言:软件和编程艺术的兴起  1

谈起他所取得的成绩,西蒙尼把这一切都归功于软件业的兴起,以及他在编写计算机代码方面的天赋异禀,当然,还有机遇、运气以及资本市场的反复无常。他的职业生涯始于20世纪60年代中期,那时他在匈牙利中央统计局工作,有点像美国青少年电脑黑客。他涉猎广泛,不断充实自己,自学了如何在俄制的ural ii电脑上进行编程。论计算机发展水平,布达佩斯还处于20世纪50年代早期的技术水平,比西方落后了几十年。多年来,软件不断发展,编程人员的视线不再局限于二进制数字或数位——机器语言0和1。但是,西蒙尼尝试用纯粹的机器语言与计算机对话。“那是编程的石器时代,”他回忆道,“我穿越了时间隧道。”

第2章 fortran:早期的“转折点”  11

要把工程或科技问题输入计算机,准备工作既艰难烦琐又枯燥乏味,可能要花好几个星期的时间,而且还需要专门的技能。只有很少一部分人具备这种与机器对话的神奇能力,就像原始社会的大祭司一样。然而,这些祭司里面也有离经叛道之人,年轻的程序员约翰?巴克斯就是其中之一。巴克斯曾在“与机器的较量”中受挫,于是他迫切地希望能加快速度、简化编程。“我猜一定有更好的办法,让编程变得更容易。”将近50年之后,在位于旧金山可以俯瞰金门大桥的家里,巴克斯如此回忆道。

第3章 20世纪60年代的惨痛教训:从繁盛到cobol和ibm 360计划成为现实  35

人们逐渐意识到软件不同于硬件,编程也开始成为一种独立的职业。但它还处于萌芽阶段,没有标准,没有资质,也没有学校能够传授系统的理论知识。无限乐观甚至无知的早期阶段于20世纪60年代后期结束。这时,人们才痛苦地发现,开发大的软件系统要比预想的更加困难,花费的成本也更大。编程这种职业逐渐成熟,软件开始被看成是一种生意。

第4章 打破巨型计算机的控制:unix和c  63

当时,汤普森不仅熟悉ibm大型计算机,对以digital equipment公司的小型机为代表的新计算设备也不陌生。尽管digital equipment还未成气候,但其pdp系列从做出模型开始就开创了另一种计算风格。这些小型机成本更低,体积更小,放置在用玻璃隔离、装有空调的房间,由受过训练的“操作员”使用,与大型计算机代表的文化完全不同。相比较而言,pdp小型计算机更小、更开放、更加诱人,权限不受企业审核和级别的限制。小型机最先被应用于科学研究、工程开发和学术研讨,它降低了那些充满好奇的人们用计算机展开实验的成本和门槛。年轻的研究员和学生也能亲手操作计算机。对他们来说,这些小型计算机可谓应运而生,同时也为黑客提供了接近计算机的途径。当ibm表现出会计账簿似的严苛风格时,小型计算机似乎更多地体现了实验室工作台般的非正式、随意的风格。

第5章 为大众编程:从达特茅斯的basic到visual basic  84

库尔兹早期编写程序用的是汇编语言,在不同计算机上使用的编程语言也不相同。麻省理工学院计算中心使用的计算机是ibm 704,因此,库尔兹掌握了这台计算机的分享式汇编语言sap。1957年,fortran问世,但起初人们对所谓的高级语言存有偏见。很多程序员都认为,fortran是为那些技术水平不高的编程练习者设计的,真正的程序员都用汇编语言来编程,而且他们认为这样做也能节省宝贵的上机时间。因此,当需要编写一个涉及大量统计计算的程序时,库尔兹选择了使用sap汇编语言。但是,经过几个月的尝试,他认输了。他浪费了“一小时宝贵的704机时和自己不那么值钱的大量时间”。放弃汇编语言之后,库尔兹尝试了人们一度不屑使用、效率不高的fortran语言。他回忆说:“结果,大概只用了5分钟的机时。使用高级语言编程能够节省计算机时间,也能节省自己的时间,这次经历对我的触动很大。”

第6章 欧洲的影响力:从algol到pascal再到c++  104

作为最重要的软件工具,编程语言的类型和结构多种多样;但从fortran和cobol到visual basic和java,这些主流编程语言都有一个地理上的共性:诞生在美国。但是,美国绝不是编程语言唯一的发源地,欧洲的发展成就也不容小觑,像algol、simula和pascal这样的编程语言,虽然没有在商业上大获成功,却有重要的学术意义。美国人似乎在设计编程语言时融入了工程学思想,采取折中的方式解决计算机应用方面的实际问题。相比之下,欧洲人在设计语言方面更偏重学术理论,美国人则更重视经济效应。

第7章 属于自己的计算机:pc产业的起步及word的故事  121

最初,这一创新带来的结果便是20世纪50年代房间大小的计算机被70年代中期面包盒大小的微型计算机的所取代。早期的微型计算机使用方便,和50年代的大怪物计算机一样,使用了相同的编程。对那些早期电子发烧友来说,研发微型计算机的过程是痛苦的,但同样也是令人振奋的。这群电子迷是一个关系密切、互帮互助的小团体,他们在小机器上试运行一些程序,主要是一些简单的游戏程序。这项工作并没有什么赚头,但是,随着芯片功能的日趋强大,这些廉价的机器显然不只是些玩具了。它们能做真正的计算机才可以做的工作,这也就潜在地让普通人拥有了掌握计算机运算的能力。随后的个人计算机革命在很大程度上都应该归功于这种企业家精神和计算机科学的合二为一。

第8章 服务于大众的计算机:从gooey到macintosh的漫漫长路  148

apple ii是个人计算机发展的第一道曙光。它的前景远远超出了当时书呆子式的、业余爱好者的机器——主要是装有微处理器的希斯套件;其中大多数具备高中水平工业艺术项目所需要的视觉吸引力。与之相反,apple ii则具有引人注目的塑料外壳,是精益求精的苹果公司创始人之一史蒂夫?乔布斯对计算机美学的早期致敬。而令人惊叹的计算机内部配置——为达最佳性能而精心挑选、排列的芯片——显示出了另一创始人斯蒂芬?沃兹尼亚克的非凡工艺。赫兹菲尔德越深入研究apple ii,越觉得惊叹不已。正如赫兹菲尔德所看到的,apple ii的工程设计拥有个性,是个独立的个体,甚至带有一丝调皮——一种叛逆的精神。他回忆说:“这是一台真正的计算机,但绝不仅限于用来更快地处理数据。”赫兹菲尔德在apple ii的身上看到了他所追求的未来:编写程序,使个人计算机更加普及、实用并能为普通的计算机用户带来乐趣。

第9章 为每一个人编程:让用户自己动手  169

尽管众多软件开发人员一直在努力,但迄今为止,仍然没有任何编程语言能够帮助普通计算机用户跨越与计算机专业人士之间的鸿沟。多年来,从fortran和cobol到visual basic和java,进步巨大,这使编程向更多的计算机业内人士敞开了大门,但却始终未能实现让普通用户自己编写程序的承诺。其他行业有一些值得借鉴的例子。电话服务刚刚扩展到社区的时候,一通长途电话至少需要经由两名接线员才能接通。全国范围内的电话服务所需要的人数更是无以计数。长途电话的普及看似毫无希望,但是随着信息交换技术的发展和其他科技的进步,出现了直拨电话技术。这使得原先由专业人员操作的劳动密集型工作全部自动化了。实际上,直拨把每个人都变成了接线员。

第10章 java:杂乱中诞生的新语言  193

当时,网络主要是用作在信息空间中储存大量文本和图片的图书馆。但是高斯林所展示的软件可以通过网络将程序传输给任一用户的计算机。它具有将网络从静止的页面媒介转化成互动式程序的潜力。他解释道:“就像你拿到一本书,翻开它,其中的页面都会与你讲话,你也可以随意移动书上的文字,让它们按照你的意愿排列。”这是一个生动的比喻,主要说明了软件对于将互联网最清晰可见的部分——网页——程序化的意义。更重要的是,从现代经济意义上说,将网络这种低成本的全球沟通媒介程序化,可以提高公司和客户的沟通效率、速度和多样性。这就是广义上的电子商务,而这还仅仅是一个开始。高斯林设计的这款名叫java的软件是网页编程的主要工具,它为互联网创造了更多可能性,拓宽了其应用范围。这跟存储程序(stored-program)的概念有异曲同工之妙,因为程序存储技术扩大了计算机的使用范围,使计算机成为一种通用的机器,并可根据不同的用途进行编程。

第11章 一定有更好的方式:apache和开源运动  217

但是,由于缺乏领导和规范的方式,大量的快速修正很快导致程序布满混乱的补丁。因此,8名软件工程师聚集到一起制定了一套操作程序。这群人中的另一位成员兰迪?特布什说:“我们决定使用手中现有的代码开始我们自己的项目。”他们一致同意,要在明确的软件模块上设计并开发所谓的服务器程序,以便程序员能够轻松地在一个代码块上工作,而不必担心会影响整个程序。他们建立了一个简单的控制流程,只有在需求明确且得到其他成员同意的情况下,程序员才可以为其加入其他特性。他们将这一共同努力的成果称为阿帕奇(apache),名字来源于最初被这些自嘲的开发者戏称为布满“补丁”的服务器。

后记  236

注解  239

参考文献  253

人名索引  257

本图书信息来源:互动出版网

转载于:https://www.cnblogs.com/china-pub/p/3804227.html

《软件故事:谁发明了那些经典的编程语言》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 《C++ Primer》 Part V (Advanced Topics)
  2. 自定义控件详解(三):Canvas效果变换
  3. 请问这个解法的时间复杂度怎么分析?谢谢!
  4. 【12】行为型-观察者模式
  5. 【Maven】Maven POM配置详解
  6. rnn神经网络模型_一文读懂序列建模(deeplearning.ai)之循环神经网络(RNNs)
  7. LeetCode 1910. 删除一个字符串中所有出现的给定子字符串
  8. 为QT添加qss样式文件
  9. springMVC发送邮件
  10. 【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(5)
  11. 高精度计算PI值 C语言 思路,高精度计算pi
  12. 借助计算机软件进行文学写作,网络文学创作对编辑提出的新要求及建议
  13. 输入三科成绩 C语言,C语言题,对我的程序找错修改。输入10个学生学号,三科成绩,求总成绩和平均分,并按成绩由高到低输出...
  14. 浏览器与node事件循环
  15. Android自定义控件之自定义倒计时按钮
  16. 小学三年级英语听力测试软件,小学三年级英语听力练习题及参考答案
  17. Ubuntu系统上安装WPS
  18. Jupyter Notebook 数学公式
  19. 若依如何手动修改项目包路径呢?
  20. leetcode:Permutations1+2nbsp;+nbsp;Rotat…

热门文章

  1. 音频处理基础入门笔记
  2. 【计算机毕业设计】在线学习系统
  3. 打印机只能打印测试页
  4. 数据结构(55) 散列表(哈希表,hash table,hash map)
  5. Shader之——花草动画shader
  6. “医”食住行--四大服务行业
  7. IT领域关于什么(续)
  8. 车规级FRAM满足汽车电子可靠性和无迟延要求
  9. anjuta的基本使用方法(包括如何设置MYSQL)
  10. TC怎么接入百宝云注册码系统V2