图书介绍

程序设计语言 实践之路PDF|Epub|txt|kindle电子书版本网盘下载

程序设计语言 实践之路
  • (美)Michael L.Scott著;裘宗燕译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7121009005
  • 出版时间:2005
  • 标注页数:884页
  • 文件大小:41MB
  • 文件页数:905页
  • 主题词:程序语言-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

程序设计语言 实践之路PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 引言1

1.1 语言设计的艺术3

1.2 程序设计语言的谱系5

1.3 为什么研究程序设计语言7

1.4 编译和解释9

1.5 程序设计环境14

1.6 编译概览15

1.6.1 词法和语法分析16

1.6.2 语义分析和中间代码生成18

1.6.3 目标代码生成22

1.6.4 代码改进24

1.7 总结和注记24

1.8 复习25

1.9 练习26

1.10 有关参考文献28

第2章 程序设计语言的语法31

2.1 描述语法:正则表达式和上下文无关文法32

2.1.1 单词和正则表达式33

2.1.2 上下文无关文法34

2.1.3 推导和语法分析树36

2.2 识别语法:扫描器和语法分析器39

2.2.1 扫描40

2.2.2 自上而下和自下而上的语法分析48

2.2.3 递归下降51

2.2.4 语法错误57

2.2.5 表格驱动的自上而下语法分析62

2.2.6 自下而上的语法分析75

2.3 理论基础87

2.3.1 有穷自动机88

2.3.2 下推自动机92

2.3.3 文法和语言类93

2.4 总结和注记94

2.5 复习97

2.6 练习98

2.7 有关参考文献102

第3章 名字、作用域和约束105

3.1 约束时间的概念106

3.2 对象生存期和存储管理108

3.2.1 基于堆栈的分配111

3.2.2 堆分配113

3.2.3 废料收集114

3.3 作用域规则115

3.3.1 静态作用域116

3.3.2 动态作用域129

3.3.3 符号表132

3.3.4 关联表和中心引用表列137

3.4 引用环境的约束139

3.4.1 子程序闭包141

3.4.2 一级和二级子程序143

3.5 重载和相关概念144

3.6 语言设计中与名字有关的缺陷149

3.6.1 作用域规则149

3.6.2 分别编译151

3.7 总结和注记155

3.8 复习157

3.9 练习158

3.10 有关参考文献162

第4章 语义分析165

4.1 语义分析器所扮演的角色166

4.2 属性文法168

4.3 属性流170

4.4 动作例程179

4.5 属性的空间管理180

4.5.1 自下而上求值181

4.5.2 自上而下求值186

4.6 语法树的标注191

4.7 总结和注记197

4.8 复习198

4.9 练习199

4.10 有关参考文献202

第5章 汇编层计算机体系结构203

5.1 工作站的微体系结构204

5.2 存储器层次结构207

5.3 数据表示209

5.3.1 整数算术211

5.3.2 浮点算术212

5.4 指令集的体系结构214

5.4.1 寻址模式215

5.4.2 条件分支217

5.5 处理器体系结构的演化218

5.5.1 两个实例体系结构:680x0和MIPS220

5.5.2 伪汇编记法形式225

5.6 为新型处理器做编译227

5.6.1 维持流水线满227

5.6.2 寄存器分配234

5.7 总结和注记242

5.8 复习243

5.9 练习244

5.10 有关参考文献247

第6章 控制流249

6.1 表达式求值250

6.1.1 优先级和结合性251

6.1.2 赋值254

6.1.3 表达式里的顺序262

6.1.4 短路求值265

6.2 结构化和非结构化的流程267

6.3 顺序复合270

6.4 选择271

6.4.1 短路条件272

6.4.2 分情况/开关语句275

6.5 迭代280

6.5.1 枚举控制的循环280

6.5.2 组合循环286

6.5.3 迭代器287

6.5.4 逻辑控制的循环294

6.6 递归297

6.6.1 迭代和递归297

6.6.2 应用序和正则序求值301

6.7 非确定性303

6.8 总结和注记308

6.9 复习310

6.10 练习311

6.11 有关参考文献316

第7章 数据类型319

7.1 类型系统320

7.1.1 类型的定义322

7.1.2 类型的分类323

7.2 类型检查330

7.2.1 类型等价330

7.2.2 类型变换和转换334

7.2.3 类型相容和强制337

7.2.4 类型推理341

7.2.5 ML的类型系统344

7.3 记录(结构)与变体(联合)351

7.3.1 语法和操作351

7.3.2 存储布局和紧缩353

7.3.3 With语句355

7.3.4 变体记录358

7.4 数组365

7.4.1 语法和操作365

7.4.2 维数、上下界和分配369

7.4.3 数组的布局373

7.5 字符串379

7.6 集合381

7.7 指针和递归类型382

7.7.1 语法和操作383

7.7.2 悬空引用391

7.7.3 废料收集395

7.8 表401

7.9 文件和输入/输出403

7.9.1 交互式I/O404

7.9.2 基于文件的I/O405

7.9.3 正文I/O407

7.10 相等检测和赋值414

7.11 总结和注记416

7.12 复习418

7.13 练习420

7.14 有关参考文献425

第8章 子程序和控制抽象427

8.1 重温堆栈布局428

8.2 调用序列431

8.2.1 实例研究:在MIPS上实现C434

8.2.2 实例研究:在680x0上实现Pascal437

8.2.3 在线展开441

8.3 参数传递442

8.3.1 参数模式443

8.3.2 专用的参数453

8.3.3 函数返回457

8.4 通用型过程和模块459

8.5 异常处理464

8.5.1 异常的定义466

8.5.2 异常的传播468

8.5.3 实例:递归下降语法分析中的短语层恢复470

8.5.4 异常的实现471

8.6 协作程序474

8.6.1 堆栈分配476

8.6.2 转移478

8.6.3 迭代器479

8.6.4 实例:离散事件模拟480

8.7 总结和注记484

8.8 复习485

8.9 练习486

8.10 有关参考文献489

第9章 构造可运行程序491

9.1 后端编译器结构491

9.1.1 一个实例492

9.1.2 阶段和遍496

9.2 中间形式496

9.2.1 Diana498

9.2.2 GNU的RTL499

9.3 代码生成503

9.3.1 一个属性文法实例504

9.3.2 寄存器分配504

9.4 地址空间组织507

9.5 汇编510

9.5.1 指令发射511

9.5.2 为名字指定地址514

9.6.1 重定位和名字解析515

9.6 连接515

9.6.2 类型检查516

9.7 动态连接518

9.7.1 与定位无关的代码519

9.7.2 完全动态连接(惰性连接)521

9.8 总结和注记522

9.9 复习523

9.10 练习524

9.11 有关参考文献527

第10章 数据抽象和面向对象529

10.1 面向对象的程序设计530

10.2 封装和继承539

10.2.1 模块539

10.2.2 类542

10.2.3 类型扩展544

10.3 初始化和终结处理546

10.3.1 构造函数的选择547

10.3.2 引用和值550

10.3.3 执行顺序551

10.3.4 废料收集553

10.4 动态方法约束554

10.4.1 虚函数和非虚函数555

10.4.2 抽象类557

10.4.3 成员查找557

10.4.4 相关概念561

10.5 多重继承564

10.5.1 语义歧义性568

10.5.2 复本式继承570

10.5.3 共享继承572

10.5.4 混入式继承573

10.6 重温面向对象的程序设计574

10.6.1 Smalltalk的对象模型577

10.7 总结和注记580

10.8 复习582

10.9 练习583

10.10 有关参考文献586

第11章 非命令式程序设计模型:函数式和逻辑式语言589

11.1 历史渊源590

11.2 函数式程序设计592

11.2.1 Scheme简介594

11.2.2 重温求值顺序604

11.2.3 高阶函数609

11.2.4 理论基础612

11.2.5 函数式程序设计展望622

11.3 逻辑式程序设计624

11.3.1 Prolog625

11.3.2 理论基础641

11.3.3 逻辑式程序设计的展望646

11.4 总结和注记648

11.5 复习650

11.6 练习651

11.7 有关参考文献657

第12章 并发659

12.1.1 简单历史660

12.1 基础和动力660

12.1.2 多线程程序的不同情况663

12.1.3 多处理器体系结构667

12.2 并发程序设计基础670

12.2.1 通信和同步671

12.2.2 语言和库672

12.2.3 创建线程的语法673

12.2.4 线程的实现682

12.3 共享存储器687

12.3.1 忙等待同步688

12.3.2 调度器的实现692

12.3.3 基于调度的同步694

12.3.4 隐式同步703

12.4 消息传递706

12.4.1 通信对方的命名706

12.4.2 传送710

12.4.3 接收714

12.4.4 远程过程调用719

12.5 总结和注记722

12.6 复习724

12.7 练习725

12.8 有关参考文献730

第13章 代码改进733

13.1 代码优化的阶段735

13.2 窥孔优化737

13.3 基本块内的冗余删除740

13.4 全局冗余删除和数据流分析745

13.4.1 静态单赋值形式和全局值编号746

13.4.2 全局公共子表达式删除750

13.5 循环改进Ⅰ755

13.5.1 循环不变量755

13.5.2 归纳变量756

13.6 指令调度759

13.7 循环改进Ⅱ763

13.7.1 循环展开和软件流水线763

13.7.2 循环重排767

13.8 寄存器分配775

13.9 总结和注记778

13.10 复习780

13.11 练习781

13.12 有关参考文献785

附录A 本书中提到的程序设计语言787

附录B 语言设计和语言实现795

参考书目801

索引827

热门推荐