程序设计语言——实践之路》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230382240

内容简介

本书在美国大学已有使用了十余年,目前被欧美许多重要大学用于“程序设计语言”或者“软件系统”课程。本书适合高年级本科生或者一年级研究生使用,许多内容对专业程序员也很有价值。本书作者Michael Scott是计算机领域的著名学者,译者是北京大学的裘宗燕教授,他熟悉专业,译笔流畅,是一本难得的著、译双馨的佳作。

作者简介

作者:(美国)斯科特(Scott Michael L.)
译者:裘宗燕

Michael L.Scott是罗切斯特大学计算机科学系的教授,1996至1999年任系主任。他是Lynx分布式程序设计语言的设计者、与他人合作设计了Charlotte和Psyche并行操作系统、Bridge并行文件系统、Cashmere分布式共享存储系统和MCS互斥锁。他在1985年由麦迪逊的威斯康星大学获得博士学位。

裘宗燕,北京大学数学学院信息科学系教授,教育部高等学校文科计算机基础教学指导委员会委员。长期从事计算机软件与理论、程序设计语言和符号计算方面的研究和教学工作。国内著名译者和作者,翻译出版了多本国外计算机经典名著,如《C++程序设计语言(特别版)》、《计算机程序的构造和解释(第二版)》,深得国内读者好评。

媒体评论

书评

“创新性地将程序设计语言设计与编译器设计有机结合的实用教本。被全球上百所大学、学院列为标准教材和首席参考书目!”

《程序设计语言——实践之路》讨论了正在使用中的各种最重要的语言的基本原理,着重探究了语言设计和语言实现之间各个方面的关键性联系,强调了其中对于专业程序员最重要的各种问题。由于其严格而又容易被人接受的讲述风格,它能够帮助你做好准备,使你能为特定的工作项目选择最好的语言,更有效地使用已经了解的语言,更快更完整地学习新语言。

特点:

讨论了程序设计语言设计的各种最新发展,其中涉及超过40种不同的语言,包括Ada 95,C,C++,
Fortran95,Java,Lis p,Scheme,ML,Modula-3 Pascal和Prglo.

特别关注实现方面的问题编译器所使用的技术和相关工具如何影响着语言的设计,以有另一个方向的影响。

覆盖了语言设计和实现的许多高级论题,例如迭代器,协作程序,模板,分别编译,I/O,类型推理和异常处理等。

论述了汇编层体系结构中的一些与语言相关的问题,这些在帮助人们理解编译器究竟对程序做了些什么方面是至关重要的。

深入讨论了有关面向对象程序设计的问题,包括多重继承和方法约束。

用一个特别的小节讨论静态连接和动态连接。

包含了深入探讨并发性的一章,讨论了共享存储和消息传递语言和库的许多深入细节。

对于编译的形式基础,函数式程序设计的形式基础和逻辑程序设计的形式基础,都提供了易于理解的基本材料。

目录

前言

第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.2.6 自下而上的语法分析

2.3 理论基础

2.3.1 有穷自动机

2.3.2 下推自动机

2.3.3 文法和语言类

2.4 总结和注记

2.5 复习

2.6 练习

2.7 有关参考文献

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

3.1 约束时间的概念

3.2 对象生存期和存储管理

3.2.1 基于堆栈的分配

3.2.2 堆分配

3.2.3 废料收集

3.3 作用域规则

3.3.1 静态作用域

3.3.2 动态作用域

3.3.3 符号表

3.3.4 关联表和中心引用表列

3.4 引用环境的约束

3.4.1 子程序闭包

3.4.2 一级和二级子程序

3.5 重载和相关概念

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

3.6.1 作用域规则

3.6.2 分别编译

3.7 总结和注记

3.8 复习

3.9 练习

3.10 有关参考文献

第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章
汇编层计算机体系结构

……

第6章 控制流

第7章 数据类型

第8章
子程序和控制抽象

第9章
构造可运行程序

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

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

第12章 并发

第13章 代码改进

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

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

参考书目

索引

更多资料请关注我的新浪博客http://blog.sina.com.cn/u/3283485963
《程序设计语言——实践之路》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230382240

更多书单和推荐电子书请关注:
http://zhaozhiyong.cn

《程序设计语言——实践之路》【PDF】下载的更多相关文章

  1. 《决战大数据:驾驭未来商业的利器》【PDF】下载

    内容简介 大数据时代的来临,给当今的商业带来了极大的冲击,多数电商人无不"谈大数据色变",并呈现出一种观望.迷茫.手足无措的状态.车品觉,作为一名经验丰富的电商人,在敬畏大数据的同 ...

  2. 大数据时代的图表可视化利器——highcharts,D3和百度的echarts

    大数据时代的图表可视化利器——highcharts,D3和百度的echarts https://blog.csdn.net/minidrupal/article/details/42153941   ...

  3. 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试

    决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...

  4. 决战大数据之二:CentOS 7 最新JDK 8安装

    决战大数据之二:CentOS 7 最新JDK 8安装 [TOC] 修改hostname # hostnamectl set-hostname node1 --static # reboot now 重 ...

  5. 学习推荐《零起点Python大数据与量化交易》中文PDF+源代码

    学习量化交易推荐学习国内关于Python大数据与量化交易的原创图书<零起点Python大数据与量化交易>. 配合zwPython开发平台和zwQuant开源量化软件学习,是一套完整的大数据 ...

  6. asp.net大数据导出execl实现分开压缩并下载

    asp.net大数据导出execl实现分开压缩并下载 /// <summary> /// 导出数据到EXCEL 多个表的 /// </summary> /// <para ...

  7. 基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析

    随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发 ...

  8. 关于大数据时代传统商业存储的思考: 中心存储 VS 分布式存储

    尊重原创,转载请注明出处:http://anzhan.me ; http://blog.csdn.net/anzhsoft 今天和我们部门的老大1*1, 大家面对面沟通了一下到新的项目组的想法.而且也 ...

  9. cloudera cdh6.3 离线安装 经典大数据平台视频教程(含网盘下载地址)

    cdh6.3企业级大数据视频教程 链接:https://pan.baidu.com/s/1bLGrIwzpFQB-pQRb6KOmNg 提取码:i8h8 系统和软件版本1,操作系统:Centos7.6 ...

  10. 大数据之路week06--day01(VMware的下载与安装、安装CentOS)

    好了,从今天开始就开始正式的进入大数据道路的轨道上了,当然了,Java 也是需要不断地在日后进行反复地学习,熟练掌握.(这里我要说一下,Java种还有一些I/O流.Lambda表达式和一些常用工具类有 ...

随机推荐

  1. 用JAVA中BufferedImage画出漂亮的验证码点击变化

    如果我们想用JAVA中BufferedImage画出漂亮的验证码点击变化怎么实现呢,类似这样: 点击变化,以下是实现过程,直接上代码: 首先前台:<i><img style=&quo ...

  2. DES对称加密算法简析

    1 对称加密算法 在了解DES算法前,先加单介绍一下对称加密算法,因为DES属于对称加密算法的一种. 对称加密算法是应用较早的加密算法,技术成熟.在对称加密算法中,数据发信方将明文(原始数据)和加密密 ...

  3. Linq学习系列-----1.2 一个简单方法的改进思考及不同的执行形式

    一.普通模式: #region 模式1 public Form1() { InitializeComponent(); GetProcessByJudge(); } public bool Memor ...

  4. Bin、App_Data等文件夹详述(转自http://blog.csdn.net/zzjiadw/article/details/6801506)

    ASP.NET应用程序和ASP.Net网站所共有的文件: App_Browsers 包含 ASP.NET 用于标识个别浏览器并确定其功能的浏览器定义 (.browser) 文件.有关更多信息,请参见浏 ...

  5. ASP.NET Core 一步步搭建个人网站(持续更新中~~~)

    摘要 ASP.NET Core2.0发布有一阵子了,这是.NET 开源跨平台的一个重大里程碑, 也意味着比1.0版本要更加成熟.目前.net core具有开源.跨平台.灵活部署.模块化架构等等特性,吸 ...

  6. [特斯拉组件]ios高性能PageController

    本文来自于腾讯Bugly公众号(weixinBugly),作者:sparrowchen,未经作者同意,请勿转载,原文地址: http://mp.weixin.qq.com/s/hBgvPBP12IQ1 ...

  7. Python学习笔记整理总结【web基础】【web/HTML/CSS/JavaScript/DOM/jQuery】

    一.HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以 ...

  8. pyhton 关于 configparser 配置 模块 实践使用中碰到的坑

    今天做一个ATM的练习,想要用configparser模块,写一个配置文件,存放用户信息. 结果状况连连,叫苦不迭. 我用configparser模块,想要对配置文件,进行读.写.改.查 功能. 其中 ...

  9. XSD详解二 - 简易元素、属性、内容限定

    一.XSD 简易元素 XML Schema 可定义 XML 文件的元素. 简易元素指那些只包含文本的元素.它不会包含任何其他的元素或属性. 1.什么是简易元素? 简易元素指那些仅包含文本的元素.它不会 ...

  10. 32位linux(centos)下mongoDB的安装

    下载mongoDB wget http://downloads.mongodb.org/linux/mongodb-linux-i686-2.4.9.tgz 如果上面地址不对可以去官网自己下载http ...