《程序设计语言——实践之路(英文第三版)》【PDF】下载
《程序设计语言——实践之路(英文第三版)》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230382234
内容简介
《程序设计语言——实践之路(第3版)》是一本很有特色的计算机教材,其核心是讨论程序设计语言的基本原理和技术。本书融合了传统的程序设计语言教科书和编译教科书的有关知识,并增加了一些有关汇编层体系结构的材料,以满足没学过计算机组织的学生们的需要。书中通过各种语言的例子,阐释了程序设计语言的重要基础概念,讨论了各种概念之间的关系,解释了语言中许多结构的形成和发展过程,以及它们演化为今天这种形式的根源。书中还详细讨论了编译器的工作方式和工作过程,说明它们对源程序做了什么,以及为什么要那样做。书的每章最后附有复习题和一些更具挑战性的练习与探索。这些练习的特别价值在于引导学生进一步深入理解各种语言和技术。本书第3版新增了关于运行时程序管理的讨论,对关于并发的一章做了重大的改写,并更新了大量的实例。
这本教材在美国大学已使用了二十余年,目前被欧美许多重要大学用于“程序设计语言”或者“软件系统”课程。
目录
第1部分
基础
第1章
引言
1.1
语言设计的艺术
1.2
程序设计语言的谱系
1.3
为什么要研究程序设计语言?
1.4
编译和解释
1.5
程序设计环境
1.6
编译概览
1.6.1
词法和语法分析
1.6.2
语义分析和中间代码生成
1.6.3
目标代码生成
1.6.4
代码改进
1.7
总结和注记
1.8
练习
1.9
探索
1.10
有关参考文献
第2章
程序设计语言的语法
2.1
描述语法:正则表达式和上下文无关文法
2.1.1
单词和正则表达式
2.1.2
上下文无关文法
2.1.3
推导和语法分析树
2.2
扫描
2.2.1
生成一个有穷自动机
2.2.2
扫描器代码
2.2.3
表格驱动的扫描
2.2.4
词法错误
2.2.5
编译指示
2.3
语法分析
2.3.1
递归下降
2.3.2
表格驱动的自上而下语法分析
2.3.3
自下而上的语法分析
2.3.4
语法错误
2.4
理论基础
2.4.1
有穷自动机
2.4.2
下推自动机
2.4.3
文法和语言类
2.5
总结和注记
2.6
练习
2.7
探索
2.8
有关参考文献
第3章
名字、作用域和约束
3.1
约束时间的概念
3.2
对象生存期和存储管理
3.2.1
静态分配
3.2.2
基于栈的分配
3.2.3
基于堆的分配
3.2.4
废料收集
3.3
作用域规则
3.3.1
静态作用域
3.3.2
嵌套子程序
3.3.3
声明的顺序
3.3.4
模块
3.3.5
模块类型和类
3.3.6
动态作用域
3.4
作用域的实现
3.4.1
符号表
3.4.2
关联表和中心引用表
3.5
作用域中名字的含义
3.5.1
别名
3.5.2
重载
3.5.3
多态性及相关概念
3.6
引用环境的约束
3.6.1
子程序闭包
3.6.2
一级值和非受限生存期
3.6.3
对象闭包
3.7
宏扩展
3.8
分别编译
3.8.1
C的分别编译
3.8.2
包和自动头文件推理
3.8.3
模块分层结构
3.9
总结和注记
3.10
练习
3.11
探索
3.12
有关参考文献
第4章
语义分析
4.1
语义分析器所扮演的角色
4.2
属性文法
4.3
属性求值
4.4
动作例程
4.5
属性的空间管理
4.5.1
自下而上求值
4.5.2
自上而下求值
4.6
语法树的标注
4.7
总结和注记
4.8
练习
4.9
探索
4.10
有关参考文献
第5章
目标机体系结构
5.1
存储器层次结构
5.2
数据表示
5.2.1
整数算术
5.2.2
浮点数算术
5.3
指令集体系结构
5.3.1
寻址模式
5.3.2
条件和分支
5.4
体系结构和实现
5.4.1
微程序设计
5.4.2
微处理器
5.4.3
RISC
5.4.4
多线程和多核
5.4.5
两个示例体系结构:x86和MIPS
5.5
为新型处理器做编译
5.5.1
保持流水线满
5.5.2
寄存器分配
5.6
总结和注记
5.7
练习
5.8
探索
5.9
有关参考文献
第2部分
语言设计的核心问题
第6章
控制流
6.1
表达式求值
6.1.1
优先级和结合性
6.1.2
赋值
6.1.3
初始化
6.1.4
表达式中的顺序问题
6.1.5
短路求值
6.2
结构化和非结构化的流程
6.2.1
goto的结构化替代品
6.2.2
继续
6.3
顺序执行
6.4
选择
6.4.1
短路条件
6.4.2
Case/Switch语句
6.5
迭代
6.5.1
枚举控制的循环
6.5.2
组合循环
6.5.3
迭代器
6.5.4
lcon的生成器
6.5.5
逻辑控制的循环
6.6
递归
6.6.1
迭代和递归
6.6.2
应用序和正则序求值
6.7
非确定性
6.8
总结和注记
6.9
练习
6.10
探索
6.11
有关参考文献
第7章
数据类型
7.1
类型系统
7.1.1
类型检查
7.1.2
多态性
7.1.3
“类型”的含义
7.1.4
类型的分类
7.1.5
正交性
7.2
类型检查
7.2.1
类型等价
7.2.2
类型相容性
7.2.3
类型推理
7.2.4
ML类型系统
7.3
记录(结构)与变体(联合)
7.3.1
语法和运算
7.3.2
存储布局及其影响
7.33
with语句
7.3.4
变体记录(联合)
7.4
数组
7.4.1
语法和操作
7.4.2
维数、上下界和分配
7.4.3
内存布局
7.5
字符串
7.6
集合
7.7
指针和递归类型
7.7.1
语法和操作
7.7.2
悬空引用
7.7.3
废料收集
7.8
表
7.9
文件和输入/输出
7.9.1
交互式I/O
7.9.2
基于文件的I/O
7.9.3
正文I/O
7.10
相等检测和赋值
7.11
总结和注记
7.12
练习
7.13
探索
7.14
有关参考文献
第8章
子程序和控制抽象
8.1
回顾栈的布局
8.2
调用序列
8.2.1
区头向量
8.2.2
案例研究:在MIPS上实现C,在x86上实现Pascal
8.2.3
寄存器窗口
8.2.4
内联展开
8.3
参数传递
8.3.1
参数模式
8.3.2
名字调用
8.3.3
特殊目的的参数
8.3.4
函数返回
8.4
泛型子程序和模块
8.4.1
不同的实现方法
8.4.2
泛型参数的约束条件
8.4.3
隐式实例化
8.4.4
C++、Java和C#中的泛型
8.5
异常处理
8.5.1
异常的定义
8.5.2
异常的传播
8.5.3
异常的实现
8.6
协作程序
8.6.1
栈分配
8.6.2
转移
8.6.3
迭代器的实现
8.6.4
离散事件模拟
8.7
事件
8.7.1
顺序处理程序
8.7.2
基于线程的处理程序
4.8
总结和注记
8.9
练习
8.10
探索
更多资料请关注我的新浪博客http://blog.sina.com.cn/u/3283485963
《程序设计语言——实践之路(英文第三版)》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230382234
更多书单和推荐电子书请关注:
http://zhaozhiyong.cn
《程序设计语言——实践之路(英文第三版)》【PDF】下载的更多相关文章
- 《决战大数据:驾驭未来商业的利器》【PDF】下载
内容简介 大数据时代的来临,给当今的商业带来了极大的冲击,多数电商人无不"谈大数据色变",并呈现出一种观望.迷茫.手足无措的状态.车品觉,作为一名经验丰富的电商人,在敬畏大数据的同 ...
- 大数据时代的图表可视化利器——highcharts,D3和百度的echarts
大数据时代的图表可视化利器——highcharts,D3和百度的echarts https://blog.csdn.net/minidrupal/article/details/42153941 ...
- 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试
决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...
- 决战大数据之二:CentOS 7 最新JDK 8安装
决战大数据之二:CentOS 7 最新JDK 8安装 [TOC] 修改hostname # hostnamectl set-hostname node1 --static # reboot now 重 ...
- 学习推荐《零起点Python大数据与量化交易》中文PDF+源代码
学习量化交易推荐学习国内关于Python大数据与量化交易的原创图书<零起点Python大数据与量化交易>. 配合zwPython开发平台和zwQuant开源量化软件学习,是一套完整的大数据 ...
- asp.net大数据导出execl实现分开压缩并下载
asp.net大数据导出execl实现分开压缩并下载 /// <summary> /// 导出数据到EXCEL 多个表的 /// </summary> /// <para ...
- 基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析
随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发 ...
- 关于大数据时代传统商业存储的思考: 中心存储 VS 分布式存储
尊重原创,转载请注明出处:http://anzhan.me ; http://blog.csdn.net/anzhsoft 今天和我们部门的老大1*1, 大家面对面沟通了一下到新的项目组的想法.而且也 ...
- cloudera cdh6.3 离线安装 经典大数据平台视频教程(含网盘下载地址)
cdh6.3企业级大数据视频教程 链接:https://pan.baidu.com/s/1bLGrIwzpFQB-pQRb6KOmNg 提取码:i8h8 系统和软件版本1,操作系统:Centos7.6 ...
- 大数据之路week06--day01(VMware的下载与安装、安装CentOS)
好了,从今天开始就开始正式的进入大数据道路的轨道上了,当然了,Java 也是需要不断地在日后进行反复地学习,熟练掌握.(这里我要说一下,Java种还有一些I/O流.Lambda表达式和一些常用工具类有 ...
随机推荐
- B-树&B+树以及其在数据库中的应用
B-树&B+树以及其在数据库中的应用 1 .B-树定义 B-树是一种平衡的多路查找树,它在文件系统中很有用. 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至 ...
- Mybatis查询时报 Bad format for Time '454:54:54' in column 6 异常
报 Bad format for Time '454:54:54' in column 6 解决方案:1. 查询实体类和.xml数据是否相对应 2. 查询sql是否正确 3. 查看表的设计,是 ...
- 线性回归,附tensorflow实现
本文同步自:https://zhuanlan.zhihu.com/p/30738405 本文旨在通过介绍线性回归来引出一些基本概念:h(x),J(θ),梯度下降法 有一组数据: x=[1,2,3,4, ...
- smartClient 1--框架介绍
一.是什么(以下简称SC) smartClient 是一个基于web技术的开发框架,主要包括: 一个无需安装的 Ajax/HTML5 客户端引擎 UI组件和服务(采用富客户端RIA)--- 提 ...
- ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证
ASP.NET Identity除了提供基于Cookie的身份验证外,还提供了一些高级功能,如多次输入错误账户信息后会锁定用户禁止登录.集成第三方验证.账户的二次验证等,并且ASP.NET MVC的默 ...
- 友元函数 C++
#include<iostream> #include<vector> using namespace std; class Text{ public: Text():a(){ ...
- 【MySQL】20个经典面试题,全部答对月薪10k+
Part2:经典题目 1.MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联: 2.MySQL中myisam与innodb的区别,至少5点 (1).问5点不同: (2).innodb引 ...
- SpringBoot零基础入门指南--搭建Springboot然后能够在浏览器返回数据
File->new Project 修改默认包名,根据自己的喜好修改 选择初始化需要导入的包,尽量不要一开始就导入很多,特别是数据库,不然启动可能会有问题,创建好的目录如下: 配置文件写在app ...
- C#访问C++动态分配的数组指针
项目中遇到C#调用C++算法库的情况,C++内部运算结果返回矩形坐标数组(事先长度未知且不可预计),下面方法适用于访问C++内部分配的任何结构体类型数组.当时想当然的用ref array[]传递参数, ...
- 获取串口映射的COM端口号
背景:近期由于项目需要,需要操作短信猫,当短信猫插入电脑后,会根据当前PC状况,映射COM口,这里需动态获取短信猫映射的COM端口号. 编程语言C#: 具体代码如下 public enum Hardw ...