主页 详情

《编程语言原理 第10版》_(美)塞巴斯塔著_13226225_9787302311126

【书名】:《编程语言原理 第10版》
【作者】:(美)塞巴斯塔著
【出版社】:北京:清华大学出版社
【时间】:2013
【页数】:633
【ISBN】:9787302311126
【SS码】:13226225

最新查询

内容简介

第1章 预备知识

1.1学习程序设计语言原理的原因

1.2程序设计领域

1.2.1科学应用

1.2.2商务应用

1.2.3人工智能

1.2.4系统程序设计

1.2.5网络软件

1.3语言评价标准

1.3.1可读性

1.3.2可写性

1.3.3可靠性

1.3.4成本

1.4影响语言设计的因素

1.4.1计算机体系结构

1.4.2程序设计方法学

1.5程序设计语言的分类

1.6语言设计中的权衡

1.7实现方法

1.7.1编译

1.7.2完全解释

1.7.3混合实现系统

1.7.4预处理器

1.8编程环境

第2章 主要程序设计语言的发展

2.1 Zuse的Plankalkul语言

2.1.1历史背景

2.1.2语言概述

2.2伪代码

2.2.1 Short Code语言

2.2.2 Speedcoding系统

2.2.3 UNIVAC“编译”系统

2.2.4相关工作

2.3 IBM 704计算机与Fortran语言

2.3.1历史背景

2.3.2设计过程

2.3.3 Fortran Ⅰ概述

2.3.4 Fortran Ⅱ

2.3.5 Fortran Ⅳ、77、90、95、2003和2008

2.3.6评价

2.4函数式程序设计:LISP语言

2.4.1人工智能的起源和表处理

2.4.2 LISP语言的设计过程

2.4.3语言概述

2.4.4评价

2.4.5 LISP的两种后代语言

2.4.6相关语言

2.5迈向成熟的第一步:ALGOL 60

2.5.1历史背景

2.5.2早期设计过程

2.5.3 ALGOL 58概述

2.5.4对ALGOL 58报告的响应

2.5.5 ALGOL 60的设计过程

2.5.6 ALGOL 60概述

2.5.7评价

2.6商务记录的计算机化:COBOL语言

2.6.1历史背景

2.6.2 FLOW-MATIC语言

2.6.3 COBOL语言的设计过程

2.6.4评价

2.7分时处理的开始:BASIC语言

2.7.1设计过程

2.7.2语言概述

2.7.3评价

2.8满足所有人的需要:PL/I

2.8.1历史背景

2.8.2设计过程

2.8.3语言概述

2.8.4评价

2.9两种早期的动态语言:APL和SNOBOL

2.9.1 APL语言的起源与特点

2.9.2 SNOBOL语言的起源与特点

2.10数据抽象的开始:SIMULA 67

2.10.1设计过程

2.10.2语言概述

2.11正交设计:ALGOL 68

2.11.1设计过程

2.11.2语言概述

2.11.3评价

2.12 ALGOL系列语言的早期后代语言

2.12.1为简单性而设计:Pascal语言

2.12.2可移植的系统语言:C语言

2.13基于逻辑的程序设计:Prolog语言

2.13.1设计过程

2.13.2语言概述

2.13.3评价

2.14历史上规模最大的设计工作:Ada语言

2.14.1历史背景

2.14.2设计过程

2.14.3语言概述

2.14.4评价

2.14.5 Ada 95和Ada 2005

2.15 面向对象的程序设计:Smalltalk

2.15.1设计过程

2.15.2语言概述

2.15.3评价

2.16结合命令式和面向对象的特性:C+++

2.16.1设计过程

2.16.2语言概述

2.16.3评价

2.16.4一种相关语言:Objective-C

2.16.5另一种相关语言:Delphi

2.16.6一种关系不大的语言:Go

2.17基于命令式的面向对象语言:Java

2.17.1设计过程

2.17.2语言概述

2.17.3评价

2.18脚本语言

2.18.1 Perl的起源与特点

2.18.2 JavaScript的起源与特点

2.18.3 PHP的起源与特点

2.18.4 Python的起源与特点

2.18.5 Ruby的起源与特点

2.18.6 Lua的起源与特点

2.19一流的.NET语言:C

2.19.1设计过程

2.19.2语言概述

2.19.3评价

2.20标记与程序设计混合的语言

2.20.1 XSLT

2.20.2 JSP

第3章 描述语法和语义

3.1概述

3.2描述语法的普遍问题

3.2.1语言识别器

3.2.2语言生成器

3.3描述语法的形式化方法

3.3.1巴科斯-诺尔范式和上下文无关文法

3.3.2扩展的BNF

3.3.3文法与识别器

3.4属性文法

3.4.1静态语义

3.4.2基本概念

3.4.3属性文法定义

3.4.4本质属性

3.4.5属性文法的例子

3.4.6计算属性值

3.4.7评价

3.5描述程序的意义:动态语义

3.5.1操作语义

3.5.2指称语义

3.5.3公理语义

第4章 词法分析和语法分析

4.1概述

4.2词法分析

4.3语法分析问题

4.3.1语法分析概述

4.3.2自顶向下的语法分析器

4.3.3自底向上的语法分析器

4.3.4语法分析的复杂度

4.4递归下降的语法分析

4.4.1递归下降的语法分析过程

4.4.2 LL文法类

4.5自下而上的语法分析

4.5.1自下而上的语法分析器的分析问题

4.5.2移进-归约算法

4.5.3 LR语法分析器

第5章 名字、绑定和作用域

5.1概述

5.2名字

5.2.1设计问题

5.2.2名字形式

5.2.3特殊字

5.3变量

5.3.1名字

5.3.2地址

5.3.3类型

5.3.4数值

5.4绑定的概念

5.4.1属性与变量绑定

5.4.2绑定类型

5.4.3存储绑定和生存期

5.5作用域

5.5.1静态作用域

5.5.2块

5.5.3声明的次序

5.5.4全局作用域

5.5.5静态作用域的评价

5.5.6动态作用域

5.5.7动态作用域的评价

5.6作用域和生存期

5.7引用环境

5.8命名常量

第6章 数据类型

6.1概述

6.2基本数据类型

6.2.1数值类型

6.2.2布尔类型

6.2.3字符类型

6.3字符串类型

6.3.1设计问题

6.3.2字符串及其操作

6.3.3字符串长度的设计选项

6.3.4评价

6.3.5字符串类型的实现

6.4用户定义的序数类型

6.4.1枚举类型

6.4.2子界类型

6.4.3实现用户定义的有序类型

6.5数组类型

6.5.1设计问题

6.5.2数组和索引

6.5.3下标的绑定和数组的种类

6.5.4数组的初始化

6.5.5数组操作

6.5.6矩形数组和不规则数组

6.5.7切片

6.5.8评价

6.5.9数组类型的实现

6.6关联数组

6.6.1结构和操作

6.6.2关联数组的实现

6.7记录类型

6.7.1记录的定义

6.7.2记录域的引用

6.7.3评价

6.7.4记录类型的实现

6.8元组类型

6.9列表类型

6.10联合类型

6.10.1设计问题

6.10.2判别式联合与自由联合

6.10.3 Ada的联合类型

6.10.4 F#的联合类型

6.10.5评价

6.10.6联合类型的实现

6.11指针和引用类型

6.11.1设计问题

6.11.2指针操作

6.11.3指针的相关问题

6.11.4 Ada中的指针

6.11.5 C和C++中的指针

6.11.6引用类型

6.11.7评价

6.11.8指针和引用类型的实现

6.12类型检查

6.13强类型化

6.14类型等价

6.15 理论和数据类型

第7章 表达式与赋值语句

7.1概述

7.2算术表达式

7.2.1运算符的运算顺序

7.2.2操作数的运算顺序

7.3运算符重载

7.4类型转换

7.4.1表达式中的强制类型转换

7.4.2显式类型转换

7.4.3表达式中的错误

7.5关系表达式和布尔表达式

7.5.1关系表达式

7.5.2布尔表达式

7.6短路求值

7.7赋值语句

7.7.1简单赋值

7.7.2条件赋值

7.7.3混合赋值运算符

7.7.4一元赋值运算符

7.7.5赋值表达式

7.7.6多重赋值

7.7.7函数式编程语言中的赋值

7.8混合模式赋值

第8章 语句级控制结构

8.1概述

8.2选择语句

8.2.1双路选择语句

8.2.2多重选择结构

8.3迭代语句

8.3.1计数控制循环

8.3.2逻辑控制循环

8.3.3用户自定义的循环控制机制

8.3.4基于数据结构的迭代

8.4无条件分支

8.5防护命令

8.6结论

第9章 子程序

9.1概述

9.2子程序的基本原理

9.2.1子程序的一般性质

9.2.2子程序的基本定义

9.2.3参数

9.2.4过程与函数

9.3子程序的设计问题

9.4局部引用环境

9.4.1局部变量

9.4.2嵌套子程序

9.5参数传递方式

9.5.1参数传递的语义模型

9.5.2参数传递的实现模型

9.5.3参数传递方法的实现

9.5.4常见语言的参数传递方法

9.5.5参数的类型检查

9.5.6多维数组作为参数

9.5.7设计考虑

9.5.8参数传递的例子

9.6子程序作为参数

9.7间接调用子程序

9.8重载子程序

9.9泛型子程序

9.9.1 C++中的泛型函数

9.9.2 Java 5.0中的泛型方法

9.9.3 C# 2005中的泛型方法

9.9.4 F#中的泛型函数

9.10函数的设计问题

9.10.1函数的副作用

9.10.2返回值的类型

9.10.3返回值的个数

9.11用户定义重载运算符

9.12闭包

9.13协同程序

第10章 实现子程序

10.1调用和返回的一般语义

10.2实现“简单”的子程序

10.3通过栈动态局部变量实现子程序

10.3.1更复杂的活动记录

10.3.2一个不含递归调用的例子

10.3.3递归调用

10.4嵌套子程序

10.4.1基础知识

10.4.2静态链

10.5块

10.6动态作用域的实现

10.6.1深层访问

10.6.2浅层访问

第11章 抽象数据类型与封装结构

11.1抽象的概念

11.2数据抽象简介

11.2.1抽象数据类型之浮点型

11.2.2用户自定义的抽象数据类型

11.2.3示例

11.3抽象数据类型的设计问题

11.4语言示例

11.4.1 Ada中的抽象数据类型

11.4.2 C++中的抽象数据类型

11.4.3 Objective-C中的抽象数据类型

11.4.4 Java中的抽象数据类型

11.4.5 C#中的抽象数据类型

11.4.6 Ruby中的抽象数据类型

11.5参数化的抽象数据类型

11.5.1 Ada

11.5.2 C++

11.5.3 Java 5.0

11.5.4 C# 2005

11.6封装结构

11.6.1引言

11.6.2 C中的封装

11.6.3 C++中的封装

11.6.4 Ada包

11.6.5 C#程序集

11.7命名封装

11.7.1 C++命名空间

11.7.2 Java包

11.7.3 Ada包

11.7.4 Ruby模块

第12章 面向对象程序设计的支持

12.1概述

12.2面向对象编程

12.2.1引言

12.2.2继承

12.2.3动态绑定

12.3面向对象语言的设计问题

12.3.1对象的排他性

12.3.2子类是子类型吗

12.3.3单继承与多继承

12.3.4对象的分配和释放

12.3.5动态绑定与静态绑定

12.3.6嵌套类

12.3.7对象的初始化

12.4 Smalltalk对面向对象编程的支持

12.4.1一般特征

12.4.2继承

12.4.3动态绑定

12.4.4 Smalltalk的评价

12.5 C++对面向对象编程的支持

12.5.1一般特征

12.5.2继承

12.5.3动态绑定

12.5.4评价

12.6 Objective-C对面向对象编程的支持

12.6.1一般特征

12.6.2继承

12.6.3动态绑定

12.6.4评价

12.7 Java对面向对象编程的支持

12.7.1一般特征

12.7.2继承

12.7.3动态绑定

12.7.4被嵌套的类

12.7.5评价

12.8 C#对面向对象编程的支持

12.8.1一般特征

12.8.2继承

12.8.3动态绑定

12.8.4被嵌套的类

12.8.5评价

12.9 Ada 95对面向对象编程的支持

12.9.1一般特征

12.9.2继承

12.9.3动态绑定

12.9.4子包

12.9.5评价

12.10 Ruby对面向对象编程的支持

12.10.1一般特征

12.10.2继承

12.10.3动态绑定

12.10.4评价

12.11面向对象构造的实现

12.11.1存储实例数据

12.11.2方法调用到方法的动态绑定

第13章 并发

13.1概述

13.1.1多处理器体系结构

13.1.2并发的种类

13.1.3使用并发的目的

13.2子程序级并发概述

13.2.1基本概念

13.2.2为并发而设计的语言

13.2.3设计问题

13.3信号量

13.3.1概述

13.3.2合作同步

13.3.3竞争同步

13.3.4评价

13.4管程

13.4.1概述

13.4.2竞争同步

13.4.3合作同步

13.4.4评价

13.5消息传递

13.5.1概述

13.5.2同步消息传递的原理

13.6 Ada对并发的支持

13.6.1基本原理

13.6.2合作同步

13.6.3竞争同步

13.6.4任务终止

13.6.5优先级

13.6.6受保护对象

13.6.7评价

13.7 Java线程

13.7.1 Thread类

13.7.2优先级

13.7.3信号量

13.7.4竞争同步

13.7.5合作同步

13.7.6非阻塞同步

13.7.7显式锁定

13.7.8评价

13.8 C#线程

13.8.1基本线程操作

13.8.2同步线程

13.8.3评价

13.9函数式语言中的并发

13.9.1 Multilisp

13.9.2并发ML

13.9.3 F

13.10语句级并发

第14章 异常处理和事件处理

14.1异常处理概述

14.1.1基本概念

14.1.2设计问题

14.2 Ada中的异常处理

14.2.1异常处理程序

14.2.2将异常绑定到处理程序

14.2.3继续

14.2.4其他设计选择

14.2.5例子

14.2.6评价

14.3 C++中的异常处理

14.3.1异常处理程序

14.3.2异常与处理程序的绑定

14.3.3继续

14.3.4其他设计选择

14.3.5例子

14.3.6评价

14.4 Java中的异常处理

14.4.1异常类

14.4.2异常处理程序

14.4.3异常与处理程序的绑定

14.4.4其他设计选择

14.4.5例子

14.4.6 finally子句

14.4.7断言

14.4.8评价

14.5事件处理概述

14.6 Java的事件处理

14.6.1 Java Swing的GUI组件

14.6.2 Java事件模型

14.7 C#中的事件处理

第15章 函数式程序设计语言

15.1概述

15.2数学函数

15.2.1简单函数

15.2.2函数形式

15.3函数式程序设计语言基础

15.4第一种函数式程序设计语言LISP

15.4.1数据类型和结构

15.4.2第一个LISP解释器

15.5 Scheme概述

15.5.1 Scheme的起源

15.5.2 Scheme解释器

15.5.3基本数值函数

15.5.4定义函数

15.5.5输出函数

15.5.6数值谓词函数

15.5.7控制流

15.5.8表函数

15.5.9用于符号原子和表的谓词函数

15.5.10 Scheme函数示例

15.5.11 LET

15.5.12 Scheme中的尾递归

15.5.13函数形式

15.5.14构建代码的函数

15.6 Common LISP

15.7 ML

15.8 Haskell

15.9 F

15.10基本命令式语言对函数式编程的支持

15.11函数式语言和命令式语言的比较

第16章 逻辑程序设计语言

16.1概述

16.2谓词演算简介

16.2.1命题

16.2.2子句形式

16.3谓词演算与定理证明

16.4逻辑程序设计概述

16.5 Prolog的起源

16.6 Prolog的基本元素

16.6.1项

16.6.2事实语句

16.6.3规则语句

16.6.4目标语句

16.6.5 Prolog的推理过程

16.6.6简单算术

16.6.7表结构

16.7 Prolog存在的缺陷

16.7.1归结的顺序控制

16.7.2封闭世界假设

16.7.3否定问题

16.7.4固有的限制

16.8逻辑程序设计的应用

16.8.1关系数据库管理系统

16.8.2专家系统

16.8.3自然语言处理

参考文献


书查询(www.shuchaxun.com)本网页唯一编码:
913ece95bc48fb5a9fa54f0b3570ecbc#4d2357e56669971115c368536bfc6143#197096790#13226225_编程语言原理(第10版).zip