程序设计语言原理
2008-6-1
机械工业出版社
(美)賽巴斯塔(Sebesta,R.W.)
514
张勤,王方矩
无
本书从为什么学习程序设计语言入手,深入细致地讲解了命令式语言的主要结构及其设计与实现,内容涉及变量、数据类型、表达式和赋值语句、控制语句、子程序、数据抽象机制、支持面向对象程序设计(继承和动态方法绑定)、并发和异常处理等方面。最后两章介绍了函数式程序设计语言和逻辑程序设计语言。 本书内容丰富,剖析透彻,被美国和加拿大多所高等院校采用作为教材。本书既可用做高等院校计算机及相关专业本科生程序设计语言课程的教材和参考书,也可供程序设计人员参考。
Robert W.Sebesta,宾夕法尼亚州立大学获得计算机科学博士,拥有30多年的教授计算机科学课程的经验。目前担任科罗拉多大学科罗拉多斯普林斯分校计算机科学系的副教授、ACM和IEEE计算机学会的会员,主要研究方向是设计和评估程序设计语言、编译器设计以及软件测试方法和工具。
出版者的话专家指导委员会译者序前言第1章 基本概念 1.1 学习程序设计语言原理的缘由 l.2 程序设计应用领域 1.3 语言评估标准 1.4 影响语言设计的因素 1.5 语言分类 1.6 语言设计中的权衡 1.7 实现方法 1.8 程序设计环境 小结*复习题*练习题第2章 主要程序设计语言的发展 2.1 Zuse的Plankalktil语言 2.2 最小硬件的程序设计:伪代码 2.3 IBM 704计算机与Fortran 2.4 函数式程序设计语言:LISP 2.5 迈向成熟的第一步:ALGOL 60 2.6 商务记录计算机化:COBOL 2.7 分时操作的开始:BASIC 2.8 用途广泛的语言:PL/I 2.9 两种早期的动态语言:APL和SNOBOL 2.10 数据抽象的开始:SIMuLA 67 2.11 正交性语言的设计:ALGOL 68 2.12 早期ALGOL系列语言的后代产品 2.13 基于逻辑的程序设计:Prolog 2.14 历史上规模最大的语言设计:Ada 2.15 面向对象的程序设计:Smalltalk 2.16 结合命令式与面向对象的特性:C++ 2.17 一种基于命令式的面向对象语言:Java 2.18 脚本语言:JavaScript、PHP、Python和Ruby 2.19 一种基于c的新世纪语言:C# 2.20 标志与程序设计混合式语言 小结*文献注释*复习题*练习题*程序设计 练习题第3章 描述语法和语义 3.1 概述 3.2 描述语法的普遍问题 3.3 描述语法的形式方法 3.4 属性文法 3.5 描述程序的意义:动态语义 小结*文献注释*复习题*练习题第4章 词法分析和语法分析 4.1 概述 4.2 词法分析 4.3 语法分析问题 4.4 递归下降语法分析 4.5 自底向上语法分析 小结*复习题*练习题*程序设计练习题第5章 名字、绑定、类型检测和作用域 5.1 概述 5.2 名字 5.3 变量 5.4 绑定的概念 5.5 类型检测 5.6 强类型化 5.7 类型等价 5.8 作用域 5.9 作用域与生存期 5.10 引用环境 5.11 命名常量 小结*复习题*练习题*程序设计练习题第6章 数据类型 6.1 概述 6.2 基本数据类型 6.3 字符串类型 6.4 用户定义的序数类型 6.5 数组类型 6.6 关联数组 6.7 记录类型 6.8 联合类型 6.9 指针类型与引用类型 小结*文献注释*复习题*练习题*程序 设计练习题第7章 表达式与赋值语句 7.1 概述 7.2 算术表达式 7.3 重载操作符 7.4 类型转换 7.5 关系表达式和布尔表达式 7.6 短路求值 7.7 赋值语句 7.8 混合模式赋值 小结*复习题*练习题*程序设计练习题第8章 语句层次的控制结构 8.1 概述 8.2 选择语句 8.3 循环语句 8.4 无条件分支 8.5 守卫的命令 8.6 结论 小结*复习题*练习题*程序设计练习题第9章 子程序 9.1 概述 9.2 子程序的基本原理 9.3 子程序的设计问题 9.4 局部引用环境 9.5 参数传递方法 9.6 子程序名作为参数 9.7 重载子程序 9.8 通用子程序 9.9 函数的设计问题 9.10 用户定义的重载操作符 9.11 协同程序 小结*复习题*练习题*程序设计练习题第10章 实现子程序 10.1 调用与返回的一般语义 10.2 实现“简单”子程序 10.3 实现具有栈动态局部变量的子程序 10.4 嵌套子程序 10.5 块 10.6 实现动态作用域 小结*复习题*练习题第11章 抽象数据类型和封装结构 11.1 抽象概念 11.2 数据抽象介绍 ll.3 抽象数据类型的设计问题 11.4 语言示例 11.5 有参数的抽象数据类型 11.6 封装结构 11.7 命名封装 小结*复习题*练习题*程序设计练习题第12章 支持面向对象的程序设计 12.1 概述 12.2 面向对象程序设计 12.3 面向对象语言的设计问题 12.4 Smalltalk对面向对象程序设计的支持 12.5 C++对面向对象程序设计的支持 12.6 Java对面向对象程序设计的支持 12.7 C#对面向对象程序设计的支持 12.8 Ada 95对面向对象程序设计的支持 12.9 Ruby对面向对象程序设计的支持 12.10 JavaScript的对象模型 12.11 面向对象结构的实现 小结*复习题*练习题*程序设计练习题第13章 并发 13.1 概述 13.2 子程序层次并发的介绍 13.3 信号量 13.4 管程 13.5 消息传递 13.6 Ada对并发的支持 13.7 Java线程 13.8 C#线程 13.9 语句层次的并发 小结*文献注释*复习题*练习题。程序 设计练习题第14章 异常处理和事件处理 14.1 异常处理慨述 14.2 Ada中的异常处理 14.3 C++中的异常处理 14.4 Java中的异常处理 14.5 事件处理概述 14.6 Java的事件处理 小结*文献注释*复习题*练习题*程序 设计练习题第15章 函数式程序设计语言 15.1 概述 15.2 数学函数 15.3 函数式程序设计语言的基础 15.4 第一种函数式程序设计语言:LISP 15.5 Scheme概述 15.6 COMMONLISP 15.7 ML 15.8 Haskell 15.9 函数式语言的应用 15.10 函数式语言和命令式语言的比较 小结*文献注释*复习题*练习题*程序 设计练习题第16章 逻辑程序设计语言 16.1 概述 16.2 谓词演算的简短介绍 16.3 谓词演算与定理证明 16.4 逻辑程序设计概述 16.5 Prolog的起源 16.6 Prolog的基本元素 16.7 Prolog的缺陷 16.8 逻辑程序设计的应用 小结*文献注释*复习题+练习题*程序 设计练习题参考文献索引
第1章 基本概念我们在深入学习程序设计语言原理之前,需要考虑几个基本的概念。首先我们将讲解,为什么计算机科学专业的学生以及专业软件开发人员需要学习语言的设计和评估的一般原理。这种讨论对于那些认为只要有一、两种程序设计语言的工作经验就足够了的计算机科学人员来说,是十分有价值的。接下来,我们将简略描述程序设计的主要范畴。然后,由于本书将评价各种程序设计语言的构成和特性,我们将会列出用于判别程序设计语言优劣的标准。紧接着,我们将讨论两个影响程序设计语言的重要因素,即计算机体系结构以及程序设计方法学。之后,我们将给出程序设计语言的不同分类。再接着,我们将阐述在语言设计中必须考虑的几种主要权衡取舍方法。由于本书也叙述程序设计语言的实现,因而我们在这一章中概括了最常用的程序设计语言实现的方法。最后,我们将简略地描述几个程序设计环境的例子并且讨论这些环境因素对于软件产品的影响。1.1 学习程序设计语言原理的缘由学生们会很自然地问,他们如何能够从程序设计语言原理的学习中得益。毕竟在计算机科学领域里,还有其他大量的题材值得花费时间认真学习。下面,是我们认为计算机科学人员通过学习程序设计语言原理能够获得的种种益处。?增进表达思想的能力。人们普遍认为,我们思维的深度受我们用来进行思想交流的语言以及这种语言的表达能力的影响。对自然语言而言,那些只掌握有限语言的人,其思维的复杂程度,特别是其抽象思维的深度,必然受到局限。换言之,人们对不能口头或笔头描述的事物结构必定很难将其概念化。
《程序设计语言原理(原书第8版)》由机械工业出版社出版。《程序设计语言原理(原书第8版)》特点及新增内容:把程序设计语言Python和Ruby融入相关章节。修改了关于操作语义的内容。新增有关支持Java 5.0和C#2005泛型类的内容。涵盖了当代语言(包括C#、Java、javaScript、perl、Python和Ruby等)有趣而重要的特性。收录了James Gosling、Larry Wall、Alan Cooper、Bjarne Stroustrup等人的访谈。以Prolog语言为例,剖析了逻辑程序设计语言。讨论了包括Scheme和ML在内的函数式程序设计语言。将面向对象和非面向对象的命令式程序设计结合起来讨论。提供了产生现有语言的特定设计选择的历史背景。
无
这时一本很经典的阐述程序设计语言原理的书
这本书让我对程序语言有了更深的了解,解开了脑子里很多的疑问,很不错!
读起来很流畅,讲述了语言原理。对于学习语言很有帮助。
从根本上消除了学习程序的疑惑
翻阅了下,有效避免语言之争。
推荐有一定编程经验(最好是没有学习过lisp、scheme的人)、希望对编程本质进行反思的人阅读
这个内容的书只找到这一本,稀罕吖。
书的质量很好,十分的满意
正在阅读,收获很大。
还木有看完
很不错啊,经典著作
最好有一定基础,适合作为课外读物
书还行。能加深对语言的理解。
书本身内容还没看,但纸质确实很差,又薄又脆,一面的字几乎都透到另外一面去了,真搞不懂是现在出的书质量都这么差,还是是盗版的
在当当网已经买过几千元的书了。对你们长期卖盗版书的潜规则我也视而不见。因为我的要求很低,只要不印错就行,毕竟是低价格。现在我买的这本书,却彻彻底底的印错了14页。第十四章几乎印成了第十三章,我知道是你们这些盗版操作者在印书的时候不负责任的瞎装订造成的,还不能退货。得,以后还是看电子书。
只要你真的想学.
这一系列都差不多,这本还可以。
非常好 涵盖了很多语言 建议有一定编程基础后再看
了解程序设计语言原理的一本好书,看了这本书对学习一门新语言有很大帮助,。
由于我自己的原因,忘了要求发票,希望尽快给我补一张,抬头是中科院成都文献情报中心,名目是“图书”。