• 程序设计语言:实践之路 (第三版)B14
  • 程序设计语言:实践之路 (第三版)B14
  • 程序设计语言:实践之路 (第三版)B14
  • 程序设计语言:实践之路 (第三版)B14
  • 程序设计语言:实践之路 (第三版)B14
  • 程序设计语言:实践之路 (第三版)B14
21年品牌 40万+商家 超1.5亿件商品

程序设计语言:实践之路 (第三版)B14

内容无划线字迹 瑕疵如图 品相自荐 品相不符以图为准

95 7.4折 128 九品

仅1件

河北保定
认证卖家担保交易快速发货售后保障

作者Michael L. Scott

出版社电子工业出版社

出版时间2012-07

版次1

装帧平装

上书时间2024-09-20

One Piece书屋

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 Michael L. Scott
  • 出版社 电子工业出版社
  • 出版时间 2012-07
  • 版次 1
  • ISBN 9787121170676
  • 定价 128.00元
  • 装帧 平装
  • 开本 大16开
  • 纸张 胶版纸
  • 页数 847页
  • 字数 1135千字
  • 原版书名 Programming Language Pragmatics, Third Edition
【内容简介】
《程序设计语言--实践之路(附光盘第3版)》编著者斯科特。

  《程序设计语言--实践之路(附光盘第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 有穷自动机 13  2.4.2 下推自动机 18  2.4.3 文法和语言类 19  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 RISC5.4.4 多线程和多核5.4.5 两个示例体系结构:x86和MIPS5.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/O7.9.2 基于文件的I/O7.9.3 正文I/O7.10 相等检测和赋值7.11 总结和注记7.12 练习7.13 探索7.14 有关参考文献第8章 子程序和控制抽象8.1 回顾栈的布局8.2 调用序列8.2.1 区头向量8.2.2 案例研究:在MIPS上实现C,在x86上实现Pascal8.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 探索8.11 有关参考文献第9章 数据抽象和面向对象9.1 面向对象程序设计9.2 封装和继承9.2.1 模块9.2.2 类9.2.3 嵌套(内层类)9.2.4 类型扩展9.2.5 不使用继承扩展9.3 初始化和终结处理9.3.1 构造函数的选择9.3.2 引用和值9.3.3 执行顺序9.3.4 废料收集9.4 动态方法约束9.4.1 虚方法和非虚方法9.4.2 抽象类9.4.3 成员查找9.4.4 多态性9.4.5 对象闭包9.5 多重继承9.5.1 语义歧义性9.5.2 复本式继承9.5.3 共享继承9.5.4 混入式继承9.6 重温面向对象的程序设计9.6.1 Smalltalk的对象模型9.7 总结和注记9.8 练习9.9 探索9.10 有关参考文献第3部分 其他程序设计模型第10章 函数式语言10.1 历史渊源10.2 函数式程序设计的概念10.3 Scheme回顾/简介10.3.1 约束10.3.2 表和数10.3.3 相等检测和检索10.3.4 控制流和赋值10.3.5 程序作为表10.3.6 一个扩展的实例:DFA模拟10.4 重温求值顺序10.4.1 严格求值和惰性求值10.4.2 I/O:流和单体10.5 高阶函数10.6 理论基础10.6.1 lambda 演算10.6.2 控制流10.6.3 结构10.7 函数式程序设计展望10.8 总结和注记10.9 练习10.10 探索10.11 有关参考文献第11章 逻辑式语言11.1 逻辑式程序设计的概念11.2 Prolog11.2.1 归结和合一11.2.2 表11.2.3 算术11.2.4 搜索/执行顺序11.2.5 一个较大的实例:九宫棋11.2.6 命令式控制流11.3 理论基础11.3.1 子句形式11.3.2 局限性11.3.3 Skolem11.4 逻辑式程序设计的展望11.4.1 没有覆盖的逻辑部分11.4.2 执行顺序11.4.3 否定和“闭世界”假设11.5 总结和注记11.6 练习11.7 探索11.8 有关参考文献第12章 并发12.1 基础和动力12.1.1 多线程程序的各种情况12.1.2 多处理器体系结构12.2 并发程序设计基础12.2.1 通信和同步12.2.2 语言和库12.2.3 创建线程的语法12.2.4 线程的实现12.3 实现12.3.1 忙等待同步12.3.2 非阻塞算法12.3.3 内存一致模型12.3.4 调度器的实现12.3.5 信号量12.4 语言级机制12.4.1 管程12.4.2 条件临界区域12.4.3 Java中的同步12.4.4 事务存储12.4.5 隐式同步12.5 消息传递12.5.1 通信对方的命名12.5.2 发送12.5.3 接收12.5.4 远程过程调用12.6 总结和注记12.7 练习12.8 探索12.9 有关参考文献第13章 脚本语言13.1 什么是脚本语言?13.1.1 公共特性13.2 问题领域13.2.1 外壳(命令)语言13.2.2 文字处理和报表生成13.2.3 数学和统计13.2.4 “粘结”语言和通用脚本13.2.5 扩充语言13.3 万维网脚本13.3.1 CGI脚本13.3.2 嵌入式服务器端脚本13.3.3 客户端脚本13.3.4 Java小程序13.3.5 XSLT13.4 新特征13.4.1 名字和作用域13.4.2 串和模式匹配13.4.3 数据类型13.4.4 面向对象13.5 总结和注记13.6 练习13.7 探索13.8 有关参考文献第4部分 对实现的近距离考查第14章 构造可运行的程序14.1 后端编译器结构14.1.1 一种可行的多阶段组织14.1.2 阶段和遍14.2 中间形式14.2.1 Diana14.2.2 gcc中间形式14.2.3 基于栈的中间形式14.3 代码生成14.3.1 一个属性文法实例14.3.2 寄存器分配14.4 地址空间组织14.5 汇编14.5.1 指令发射14.5.2 为名字指定地址14.6 连接14.6.1 重定位和名字解析14.6.2 类型检查14.7 动态连接14.7.1 与定位无关的代码14.7.2 完全动态连接(惰性连接)14.8 总结和注记14.9 练习14.10 探索14.11 有关参考文献第15章 运行时程序管理15.1 虚拟机15.1.1 Java虚拟机15.1.2 公共语言基础架构15.2 机器码的迟绑定15.2.1 即时和动态编译15.2.2 二进制翻译15.2.3 二进制重写15.2.4 移动代码和沙箱15.3 审查/自反15.3.1 自反15.3.2 符号调试15.3.3 性能分析15.4 总结和注记15.5 练习15.6 探索15.7 有关参考文献第16章 代码改进16.1 代码改进的阶段16.2 窥孔优化16.3 基本块内的冗余删除16.3.1 一直使用的实例16.3.2 值编号16.4 全局冗余删除和数据流分析16.4.1 SSA(静态单赋值)形式和全局值编号16.4.2 全局公共子表达式删除16.5 循环改进I16.5.1 循环不变量16.5.2 归纳变量16.6 指令调度16.7 循环改进II16.7.1 循环展开和软件流水线16.7.2 循环重排16.8 寄存器分配16.9 总结和注记16.10 练习16.11 探索  16.12 有关参考文献  附录A 本书中提到的程序设计语言附录B 语言设计和语言实现附录C 编号示表
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP