编程语言:原理与范型
¥
60
8.8折
¥
68
八五品
仅1件
作者 图科
出版社 清华大学出版社
出版时间 2008-01
装帧 其他
货号 B5-14-5
上书时间 2024-12-03
商品详情
品相描述:八五品
图书标准信息
作者
图科
出版社
清华大学出版社
出版时间
2008-01
ISBN
9787302166931
定价
68.00元
装帧
其他
开本
其他
纸张
其他
原版书名
Programming Languages: Principles and Paradigms
【内容简介】
本书第1版自1999年出版以来,编程语言的研究已得到迅猛发展。为此,新版尽量贴近现今的发展趋势,以适应当前和未来编程语言设计过程中所伴随的新挑战。本书除了进一步提高了4种程序设计范型及其所用的语言的广度和深度外,还大大丰富了关于语言设计原理的内容,并新增了如Python、Perl这类编程语言的例子。本书主要结构第一部分:原理。第2、4、5、7、9章分别讲述了编程语言的5个核心原理(语法、名称、类型、语义和函数)。第3、6、8、10、11章加深对这些主题的阐述。第二部分:范型。包含4个主要的程序范型。其中,
【作者简介】
Allen B.Tucker是Bowdoin等院计算机科学系的教授,曾获得了Wesleyan大学的数学学士学位,Northwestern大学的计算机科学硕士和博士学位。 Tucker教授已出版了有关编程语言、软件设计、自然语言处理和课程设计等方面的专著。他是乌克兰Ternopil Academy of National Economy的Fulbright讲席教授,新西兰Canter-bury大学的Erskine访问学者和法国Esigelec大学的访问学者,还是 ACM的会员。
【目录】
第1章 概论1 1.1 原理2 1.2 范例3 1.3 专题5 1.4 编程语言发展简史5 1.5 关于语言设计10 1.5.1 设计约束11 1.5.2 结果和目标13 1.6 编译器和虚拟机17 1.7 小结19 1.8 练习19 第2章 语法21 2.1 文法22 2.1.1 BNF文法22 2.1.2 推导24 2.1.3 语法分析树25 2.1.4 结合性和优先级27 2.1.5 歧义性文法29 2.2 BNF扩展32 2.3 小语言CLITE的语法34 2.3.1 词法36 2.3.2 具体语法37 2.4 编译器和解释器41 2.5 语法和语义学链接44 2.5.1 抽象语法45 2.5.2 抽象语法树47 2.5.3 Clite的抽象语法48 2.6 小结50 2.7 练习51 第3章 词法和语法分析55 3.1 Chomsky层次结构55 3.2 词法分析58 3.2.1 正则表达式59 3.2.2 有穷状态机61 3.2.3 从设计到代码64 3.3 语法分析68 3.3.1 基本定义69 3.3.2 递归下降分析73 3.4 小结79 3.5 练习79 第4章 命名83 4.1 语法问题84 4.2 变量85 4.3 作用域87 4.4 符号表89 4.5 解析引用90 4.6 动态作用域92 4.7 可见性93 4.8 重载94 4.9 生存期96 4.10 小结97 4.11 练习97 第5章 类型99 5.1 类型错误100 5.2 静态类型和动态类型101 5.3 基本类型102 5.4 非基本类型110 5.4.1 枚举110 5.4.2 指针111 5.4.3 数组和列表112 5.4.4 串117 5.4.5 结构体118 5.4.6 变体记录和共用体119 5.5 递归数据类型121 5.6 作为类型的函数122 5.7 类型等价123 5.8 子类型124 5.9 多态和通用类125 5.10 自定义类型129 5.11 小结130 5.12 练习130 第6章 类型系统133 6.1 Clite的类型系统135 6.2 隐式类型转换142 6.3 规范Clite类型系统146 6.4 小结149 6.5 练习149 第7章 语义151 7.1 动机151 7.2 表达式语义153 7.2.1 表示法153 7.2.2 结合律和优先级154 7.2.3 短循环求值156 7.2.4 表达式的意义157 7.3 程序状态158 7.4 赋值语义160 7.4.1 多重赋值160 7.4.2 赋值语句与赋值表达式160 7.4.3 语义的引用和复制161 7.5 流程控制语义161 7.5.1 顺序执行语句162 7.5.2 条件语句162 7.5.3 循环语句164 7.5.4 GoTo争议165 7.6 输入/输出语句167 7.6.1 基本概念167 7.6.2 随机访问文件172 7.6.3 I/O错误处理语义175 7.7 异常处理语义177 7.7.1 策略和设计理念178 7.7.2 Ada、C++和Java中的异常处理180 7.7.3 异常和断言188 7.8 小结192 7.9 练习192 第8章 语义解释195 8.1 状态转换和局部函数195 8.2 Clite语义196 8.2.1 程序的意义197 8.2.2 语句的语义198 8.2.3 表达式语义202 8.2.4 表达式的副作用206 8.3 动态类型语义207 8.4 语义的规范化处理211 8.4.1 状态和状态转换212 8.4.2 程序的表示型语义213 8.4.3 语句的表示型语义214 8.4.4 表达式的表示型语义218 8.4.5 规范化语义模型的局限性220 8.5 小结220 8.6 练习220 第9章 函数225 9.1 基本术语226 9.2 函数调用和返回226 9.3 参数227 9.4 参数传递机制229 9.4.1 传值调用229 9.4.2 按引用传递231 9.4.3 值结果和结果传递233 9.4.4 按名传递234 9.4.5 Ada中的参数传递236 9.5 活动记录236 9.6 递归函数237 9.7 运行时堆栈239 9.8 小结241 9.9 练习242 第10章 函数实现245 10.1 Clite中的函数声明与调用245 10.1.1 具体句法246 10.1.2 抽象句法247 10.2 编译Clite类型系统249 10.3 函数调用与返回的语义251 10.3.1 非void函数252 10.3.2 重访问的副作用253 10.4 类型和语义的规范处理254 10.4.1 Clite类型映射254 10.4.2 规范化Clite类型规则255 10.4.3 规范Clite语义257 10.5 小结262 10.6 练习262 第11章 内存管理265 11.1 堆266 11.2 动态数组的实现267 11.3 垃圾回收270 11.3.1 引用计数271 11.3.2 标记扫描272 11.3.3 复制收集275 11.3.4 策略优劣比较277 11.4 小结277 11.5 练习278 第12章 命令式编程279 12.1 命令式语言的产生279 12.2 过程抽象281 12.3 表达式和赋值283 12.4 支持数据结构的库284 12.5 命令式编程和C语言286 12.5.1 一般特征287 12.5.2 示例:Grep288 12.5.3 示例:Average290 12.5.4 示例:符号微分法290 12.6 命令式编程和Ada语言294 12.6.1 一般特征295 12.6.2 示例:Average297 12.6.3 示例:Matrix Multiplication299 12.7 命令式编程和Perl语言300 12.7.1 一般特性301 12.7.2 示例:Grep302 12.7.3 示例:Mailing Grades305 12.8 小结308 12.9 练习309 第13章 面向对象编程311 13.1 抽象数据类型311 13.2 对象模型317 13.2.1 类317 13.2.2 可见性和信息隐藏320 13.2.3 继承321 13.2.4 多重继承325 13.2.5 多态326 13.2.6 模板327 13.2.7 抽象类328 13.2.8 接口329 13.2.9 虚拟方法表331 13.2.10 运行时类型标识333 13.2.11 反射333 13.3 Smalltalk334 13.3.1 一般特性335 13.3.2 示例:多项式338 13.3.3 示例:复数340 13.3.4 示例:银行账户342 13.4 Java343 13.4.1 示例:符号微分343 13.4.2 示例:回溯346 13.5 PYTHON350 13.5.1 一般特性353 13.5.2 示例:多项式354 13.5.3 示例:分数356 13.6 小结358 13.7 练习359 第14章 函数式编程363 14.1 函数和λ演算364 14.2 Scheme语言368 14.2.1 表达式368 14.2.2 表达式求值369 14.2.3 列表370 14.2.4 元素值372 14.2.5 控制流373 14.2.6 定义函数373 14.2.7 let表达式376 14.2.8 示例:Clite语义378 14.2.9 示例:符号微分382 14.2.10 示例:八皇后问题384 14.3 Haskell语言388 14.3.1 简介389 14.3.2 表达式390 14.3.3 列表及其产生391 14.3.4 基本类型和值394 14.3.5 控制流394 14.3.6 定义函数395 14.3.7 元组398 14.3.8 示例:Clite语义399 14.3.9 示例:符号微分402 14.3.10 示例:八皇后问题404 14.4 小结406 14.5 练习406 第15章 逻辑式编程411 15.1 逻辑和horn 语句412 15.2 Prolog语言中的逻辑式编程415 15.2.1 Prolog程序元素415 15.2.2 Prolog语言的实际应用423 15.3 Prolog程序示例427 15.3.1 符号微分法427 15.3.2 猜字谜429 15.3.3 自然语言处理430 15.3.4 Clite的语义434 15.3.5 八皇后的问题437 15.4 小结439 15.5 练习440 第16章 事件驱动编程443 16.1 事件驱动控制444 16.1.1 模型-视图-控制器445 16.1.2 Java中的事件446 16.1.3 Java GUI应用程序448 16.2 事件处理450 16.2.1 单击鼠标450 16.2.2 鼠标移动451 16.2.3 按钮452 16.2.4 标签、文本域和文本框453 16.2.5 组合框455 16.3 3个示例456 16.3.1 简单的GUI接口456 16.3.2 设计Java Applet462 16.3.3 基于事件驱动的交互式游戏464 16.4 其他事件-驱动应用程序472 16.4.1 ATM自动取款机472 16.4.2 家庭保安系统473 16.5 小结475 16.6 练习475 第17章 并发编程479 17.1 并发的概念480 17.1.1 历史和定义481 17.1.2 线程控制与通信482 17.1.3 竞争和死锁483 17.2 同步策略485 17.2.1 信标485 17.2.2 监视器487 17.3 Java中的同步489 17.3.1 Java线程489 17.3.2 示例491 17.4 进程间通信500 17.4.1 IP地址、端口和套接字501 17.4.2 一个客户/服务器示例502 17.5 其他语言中的并发508 17.6 小结510 17.7 练习510 第18章 程序的正确性513 18.1 公理语义514 18.1.1 基本概念515 18.1.2 赋值规则518 18.1.3 推理规则518 18.1.4 Max函数的正确性519 18.1.5 循环程序的正确性520 18.1.6 形式化方法的观点523 18.2 形式化方法工具:JML525 18.3 面向对象程序的正确性532 18.3.1 按照契约设计532 18.3.2 类常量533 18.3.3 示例:堆栈应用的正确性535 18.3.4 总结540 18.4 函数程序的正确性541 18.4.1 递归与归纳541 18.4.2 结构化归纳示例542 18.5 小结544 18.6 练习545 附录A Clite的定义549 A.1 Clite词汇和具体句法549 A.2 Clite的抽象句法550 A.3 Clite的类型系统551 A.4 Clite的语义552 A.5 Clite的加法函数554 A.5.1 词汇以及具体语法554 A.5.2 抽象句法555 A.5.3 类型系统555 A.5.4 语义556 附录B 离散数学回顾557 B.1 集合和关系557 B.2 视图561 B.3 逻辑562 B.4 推理规则和直接证明566 B.5 归纳证明568
点击展开
点击收起
— 没有更多了 —
本店暂时无法向该地区发货
以下为对购买帮助不大的评价