《程序设计语言 —— 实践之路》 《程序设计语言 —— 实践之路》 《程序设计语言 —— 实践之路》
从问题到程序--程序设计与C语言引论 《从问题到程序--程序设计与C语言引论》 NEW!

本书以程序设计为基本线索,同时深入介绍了C语言各方面的情况。书中强调的是如何认识程序、写程序和用C写出好的程序。并通过实例讨论了问题的分析和分解,找出主要步骤,确定函数抽象,找出循环,选择语言结构,最后写出程序的过程。书中不少实例给出了在不同考虑下可能形成的多种解法,以帮助读者理解程序设计的“真谛”。

作者:裘宗燕
定价:
7 折:
¥36.00
¥25.20
田祥宏(南京金陵科技学院信息技术学院)

第一次看到C语言书写得最么细腻,这本书的编排体系非常好,细细读来给人一种润物细无声的感觉,她通过一个个小问题将C语言的知识点溶入其中,将学生在学习C语言中的第一、二个难点---循环和函数于无声中分解了,使学生能在不知不觉中学会循环和函数,特别是将学习知识点过程中的注意事项也以问题的形式提出,并娓娓道来,使人很容易接受。

难得的一本好书,我觉得这本书开创了程序设计语言类书编写的先河。


陈世展(天津大学电信学院计算机系)


C语言作为一种通用的程序设计语言,在计算机软件开发中得到广泛的应用,也是许多计算机专业课程的描述语言,相关的介绍C语言的教材、读物众多。

裘宗燕老师的《从问题到程序——程序设计和C语言导论》除了深入的介绍C语言的语法、C程序设计技术、C语言的各种结构和机制以外;作为定位于第一门程序设计课程的教材或入门自学读物还有自己的独到之处:
第一……更多书评

     

经典图书:

程序设计语言 —— 实践之路 《程序设计语言 —— 实践之路》

【译者】 裘宗燕 个人网站


——全球上百所大学列为标准教材和首选参考书

Schools that have adopted the book, with links to course home pages where known

接受程序设计语言的再教育

■ 王咏刚

  再教育?没错。依个人愚见,大多数中国程序员都需要接受一次有关程序设计语言的再教育,而 Michael L.Scott 所著的《程序设计语言 —— 实践之路》则可以成为这次再教育中的最好读本之一。

  在现代汉语中,没有什么词比 “ 急功近利 ” 更能体现当代程序员对于程序设计语言的期望和要求了 —— 我见过太多太多只学会了“Hello,World ” 就打算独立编写企业级应用的速成者,我也见过太多太多刚掌握了一门面向对象语言的语法就宣称自己是 OO 专家的神仙级人物;在他们眼中,一本名为《某某语言入门》的教科书应足以取代《数据结构》、
《编译原理》、《离散数学》等所有 “ 高深 ” 而 “ 无用 ” 的课程,而一名能熟练使用 Hibernate 或 Spring 的 Java 程序员就足以成为一家小型企业的 J2EE 首席架构师了。

  更为有趣的是,这些急功近利的 “ 语言万能论 ” 者一方面会把某种最流行的语言或类库当作克敌制胜的惟一法宝,另一方面却又丝毫不理会那些经过数十年的积淀才成为现代程序设计语言精华的,贯穿于语法、语义和语用等三个层面的基本理念和基本特征;这种做法就像是把一部夏利引擎、麦凯伦外壳的赛车开上了 F1 赛道,难免会在残酷的现实面前落得个鼻青脸肿的结局。

  很显然,如果你对自己在实际工作中总是无法提高编码效率、无法改进软件质量的事实困惑不已,如果你在试用了 28 种开源框架和 69 种 eclipse 插件后仍不清楚自己眼前的垃圾代码该如何 “ 重构 ” ,那么,你也许需要抽出一些时间,补习一下你曾经极度蔑视的、看起来没有任何 “ 用处 ” 的基础知识了。对于那些没时间重温大学课程的上班族来说,这种补习最好从《程序设计语言 —— 实践之路》开始。即便不能把这本八九百页的 “ 大部头 ” 全部读完,你也至少能在阅读过程中明白三个看似浅显、实则微妙的 “ 大道理 ” :

  其一,语言必须与环境相结合,才能发挥出最大的功用。这里所说的 “ 环境 ” 通常包括编译环境、运行环境和应用环境三个方面。举例来说,如果你打算仿照着某些开源框架的做法,使用控制反转和依赖注入技术消除代码中某些让人生厌的依赖关系,你一定会认真研习实现类似技术的语法特征,但你未必会主动思考以下几个问题:在编译层面,使用了这些语法特征的代码是否会影响到最终生成的目标代码质量?在运行层面,该如何组织这些语法特征,才能让使用了相关技术的可执行程序在支持废料收集的并发环境下有不俗的表现?在应用层面,这些旨在消除依赖关系的技术会不会破坏新、旧模块间的平衡关系,以至于我们必须花上大量时间改写原有的代码或接口才能保证系统的平滑升级?全面思考这些与环境相关的问题并不一定会改变你的抉择,但它却可以帮助你找到效率、可靠性和可用性之间的最佳平衡点。在此方面,《程序设计语言 —— 实践之路》一书所使用的,将程序设计语言与编译原理、面向对象等知识综合起来、融会贯通的做法不但可以节省我们分类学习的大量时间,还可以训练我们从整体出发、多角度思维的方式与方法,其价值不言而喻。

  其二,程序设计语言本身所具有的多样性可以成为我们提高软件开发水平的最佳指南。说到这里,我又想起了那些充斥在各大技术网站的,题为 “ 某某语言比某某语言更强大 ” 或 “ 某某语言已死,某某语言必胜 ” 的帖子。发表这些帖子的帖主也许并不懂得,程序设计语言的世界本来就是一个多样化的、五彩缤纷的世界,每一种成功进入应用、教学或科研领域的程序设计语言都有它值得学习和借鉴的地方。如果仅仅根据个人的喜好或是响应时尚的号召,就盲目地吹捧某一种语言并贬低其他所有语言,这样的帖子和那些频繁出现在 Fans 网站上的 “ 爱死某某某,恨死某某某 ” 的帖子有什么本质的不同?更为重要的是,如果我们能够在《程序设计语言 —— 实践之路》的指下,真正懂得了函数式语言、数据流语言、逻辑式语言、冯 · 诺伊曼语言、面向对象语言等不同的语言类型在语法设计、编译器设计和运行环境设计方面的异同,我们就会惊讶地发现: Scheme 语言的 lambda 表达式可以在 C 语言中优雅、高效地解决诸如面向契约设计之类的复杂问题; Ada95 语言中提供的同步和保护机制可以为那些使用 Java 编写的多线程应用提供重要的参考; Sma ll talk 语言与编译和运行环境的紧密结合则可以为我们设计可扩展的 JavaScript 宿主提供最好的借鉴 …… 从这个意义上说,学习一种语言的意义绝不在于为自己增添一种求职和谋生的手段 —— 真正善于学习的人总能从每种语言的设计和实现中找到许多可用于提高编程水平的关键特征。

  其三,使用特定语言编写出来的代码是否优雅、可靠,这主要取决于程序员对各种基本理念和基本原则的认知程度,而不取决于程序员记住了多少复杂的语法特征或学会了多少流行类库的用法。正如《程序设计语言 —— 实践之路》所说的那样, “ 典型的 C 程序员都极少使用联合、多重继承、变动个数的参数,或者 . 运算符 ” ,但是,如果你了解了隐藏在这些复杂语法特征背后的东西 —— 如内存空间的分配和寻址方式,复本式继承和共享式继承之间的关系,参数传递和求值顺序,动态方法约束和成员查找,等等 —— 你就可以在需要使用这些语法特征的时候满怀信心地告诉自己: “ 嘿,这不过是某某原则或某某技术在 C 语言中的表现形式罢了,我能搞定它! ” 反之,如果你不晓得与数据结构和算法相关的代码在编译、运行时必然存在的各种均衡与折中问题,即便你把 C 语言的标准文档背得滚瓜烂熟,即便你可以默写出 System.Co ll ections 命名空间中的所有属性和方法,你也会在体验过自己开发的软件与成熟软件之间的差别后大发感慨: “ 同样是使用 C 语言,为什么我写的程序总会从头到脚散发着 ‘ 业余 ' 的气味儿呢? ”

  关于程序设计语言的本质, Michael L.Scott 是这样说的: “ 就像自然语言限制着人们解释和论述的方式一样,程序设计语言也限定了什么可以表达,什么不能表达,并对程序员能够怎样思考问题有着深刻而微妙的影响。 ” 既然如此,我们还犹豫什么呢?与其后悔在学校中虚度了光阴,还不如马上捧起《程序设计语言 —— 实践之路》这本书,接受一次有关程序设计语言的再教育呢!

                                  接受程序设计语言的再教育--摘自中华读书报

 
《程序设计语言——实践之路》书评
■ 武汉大学周维博士
                     
  近日有幸拜读了电子工业出版社博文视点出版的《程序设计语言——实践之路》一书,深有感触。

  该书打破了常规的程序设计语言教材的编排组织方式,这本书所涉及的内容或许并不新颖(程序设计语言、编译原理),但其独到的组织方式和精当的内容取舍让我眼前一亮。创新性地将语言设计与编译原理两门课程的内容融合在一起,将两门在传统上分割开来的学科融会贯通,彻底打破我们在学习中产生的不连贯性。

  这是一本知识浓缩度相当高的教材,它所覆盖的知识面相当的广泛,它可以作为自动机原理、汇编语言、编译原理、数据结构、计算机组成原理等计算机专业课程程的参考书,也可以为电子信息工程、通信工程和信息技术等专业的学生提供帮助。本书并没有具体的讲解某种程序设计语言,但其讲述的一般原理,是任何一种程序设计语言都必不可少的。本书从计算机的硬件、设计、原理和实现上都做了详细的阐述,是一本难得的综合教材。由于本书综合的内容比较多,在具体的某些方面讲得不是很细,但是对于作为教材来讲,确实是一本经典之作。特别适合研一的学生来阅读。

  正是因为本书的独到之处,目前世界各国很多大学都引用这本书作为其“程序设计语言”、“编译原理”、“软件工程”等课程的教材,学生普遍反映较好。但是目前国内的高校却甚少使用该教材,一来因为该书引进不久,二来是因为我国的计算机相关课程的教学状况跟国外相比相对落后,学生素质也有所差异。该书在内容上有一定的深度,需要读者至少掌握一门高级语言和基本的编译原理的知识,作为高年级本科生来讲,可能难以接受,所以我建议给研究生来阅读。

  从我个人的角度,我比较欣赏这本书。特别是裘老师的翻译水平让我折服。

  如果可能,下学期我带国际软件学院工程硕士的《程序设计》这门课时,我会使用这本教材。
                                                       
更多精彩书评:
一本论述程序实践的巨著   ——黄林鹏教授 上海交通大学
从《程序设计语言--实践之路》谈程序设计语言的教学与学习 ——武汉大学计算机学院讲师 刘茂福