程序设计语言 - 斯科特

程序设计语言

斯科特

出版时间

2005-01-01

ISBN

9787121009006

评分

★★★★★
书籍介绍
这是一本很有特色的教材,其核心是讨论程序设计语言的工作原理和技术。本书融合了传统的程序设计语言教科书和编译教科书的有关知识,并增加了一些有关汇编层体系结构的材料,以满足没学过计算机组织的学生们的需要。书中通过各种语言的例子,阐释了程序设计语言的重要基础概念,讨论了各种概念之间的关系,解释了语言中许多结构的形成和发展过程,以及它们演化为今天这种形式的根源。书中还详细讨论了编译器的工作方式和工作过程,说明它们对源程序做了什么,以及为什么要那样做。书的每章最后附有复习题和一些更具挑战性的练习。这些练习的特别价值在于引导学生进一步深入理解各种语言和技术。 本书在美国大学已有使用了十余年,目前被欧美许多重要大学用于“程序设计语言”或者“软件系统”课程。本书适合高年级本科生或者一年级研究生使用,许多内容对专业程序员也很有价值。本书作者Michael Scott是计算机领域的著名学者,译者是北京大学的裘宗燕教授,他熟悉专业,译笔流畅,是一本难得的著、译双馨的佳作。
AI导读
核心看点
  • C语言设计者亲笔,编程界公认圣经
  • 代码精炼优雅,多一字嫌多,少一字嫌少
  • 深入解析标准库实现,揭示语言底层思想
适合谁读
  • 具备一定编程基础,欲深入理解C语言者
  • 追求代码简洁与高效,崇尚极简风格者
  • 计算机专业学生及资深软件从业人员
读前提醒
  • 零基础新手慎入,建议先读通俗教材入门
  • 务必动手完成书后习题,光看不练无效
  • 可结合CSAPP课程或Linux环境同步研读
读者共识
  • 经典之作,需多次重读方能领悟其深意
  • 翻译质量一般,建议有余力者阅读原版
  • 虽薄却重,是构建软件大厦的思维基石

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • ""相对于#define语句来说,它的优势在于常量值可以自动生成。尽管可以声明enum类型的变量,但编译器不检查这种类型的变量中存储的值是否为该枚举的有效值。不过,枚举变量提供这种检查,因此枚举比#define更具优势。此外,调试程序可以以符号形式打印出枚举变量的值";"
  • "If a name that has not been previously declared occurs in an expression and is followed by a left parenthesis, it is declared by context to be a function name, the function is assumed to return an int, and nothing is assumed about its arguments. Furthermore, if a function declaration does not includ"
  • "float类型通常是32位,它至少有6位有效数字,取值范围一般在10^-38 ~ 10 ^ 38之间"
  • "BCPL and B are "typeless" languages. By contrast, C provides a variety of data types. The fundamental types are characters, and integers and floating-point numbers of several sizes. In addition, there is a hierarchy of derived data types created with pointers, arrays, structures, and unions. Express"
  • "Right shifting a signed quantity will fill sign bits ("arithmetic shift") or on some machines ans with 0-bits ("logical shift") on others"
  • "Declaring the argument x to be unsigned ensures that when it is right-shifted, vacated bits will be filled with zeros, not sign bits, regardless of the machine the program run on."
  • "char *fgets(char *line, int maxline, FILE *fp) fgets reads the next input line (including the newline) from file fp into the character array line; at most maxline-1 characters will be read. The resulting line is terminated with '\0'. Normally fgets returns line; on end of file or error it returns NU"
  • "void *realloc(void *p, size_t size) realloc changes the size of the object pointed to by p to size. The contents will be unchanged up to the minimum of the old and new sizes. If the new size is larger, the new space is uninitialized. realloc returns a pointer to the new space, or NULL if the request"
作者简介
Brian W. Kernighan,贝尔实验室计算科学研究中心高级研究人员,著名的计算机科学家。参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,同时出版了许多在计算机领域具有影响的著作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。 Dennis M. Ritchie,1967年加入贝尔实验室。他和 Ken L. Thompson 两人共同设计并实现的C语言改变了程序设计语言发展的轨迹,是程序设计语言发展过程中的一个重要里程碑。与此同时,他们还设计并实现了UNIX操作系统。正是由于这两项巨大贡献,Dennis M. Ritchie 于1983年获得了计算机界的最高奖——图灵奖。此外,他还获得了ACM、IEEE、贝尔实验室等授予的多种奖项.。
用户评论
pl
能把编程语言的演进过程,相关语言特性的实现细节,各种语言中面对的普遍问题,以及新特性时间的实际问题讲的如此全面,已经非常难得了。 满分。 我看的是英文版本的第三版。是中科院计算所编译技术课题组博士生讨论班的阅读参考书。如果没有这个讨论班,估计自己也读不下去。
经典
放弃。。
刚开始读,觉得应该是本好书。
很有趣的。设计系统、框架、接口的时候应当参考大师们是怎么设计程序语言的。
收藏