
最 低 价:¥51.80
| 本书的主旨是为读者提供对现有的和将来的程序设计语言进行客观评价所需要的方法和思路,增强读者学习新语言的能力并理解语言的实现。本书从学习程序设计语言的原因,常用程序设计语言的演化史、评估程序设计语言结构的标准,以及这些语言基本的实现方法开始讲起,通过不局限于特定语言种类地分析语言结构的设计问题,检测设计选择,以及比较设计可选方案来讲述程序设计语言基本原理。本书并非讲授如何使用一门语言,而是讨论语言的结构、特性及其在各种情景中的设计和实现以及如何根据给定的任务选择合适的语言。 本书特点及新增内容: 把程序设计语言Python和Ruby融入相关章节。 修改了关于操作语义的内容。 新增有关支持Java 5.0和C#2005泛型类的内容。 涵盖了当代语言(包括C#、Java、javaScript、perl、Python和Ruby等)有趣而重要的特性。 收录了James Gosling、Larry Wall、Alan Cooper、Bjarne Stroustrup等人的访谈。 以Prolog语言为例,剖析了逻辑程序设计语言。 讨论了包括Scheme和ML在内的函数式程序设计语言。 将面向对象和非面向对象的命令式程序设计结合起来讨论。 提供了产生现有语言的特定设计选择的历史背景。 |
| 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 逻辑程序设计的应用 小结*文献注释*复习题+练习题*程序 设计练习题 参考文献 索引 |
商品评论(0条)