注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计程序设计综合程序设计语言——原理与实践

程序设计语言——原理与实践

程序设计语言——原理与实践

定 价:¥48.00

作 者: (美)Kenneth C.Louden著;黄林鹏等译
出版社: 电子工业出版社
丛编项: 国外计算机科学教材系列
标 签: 高级程序语言设计

ISBN: 9787505397873 出版时间: 2004-01-01 包装: 平装
开本: 26cm 页数: 522页 字数:  

内容简介

  本书介绍程序设计语言的一般性原理和现代程序设计语言的具体细节,涉及一些最新的函数式语言和面向对象语言。与许多介绍性的教材不同,本书包括语言实现技术,语言语义基础和大量的习题,可作为编译原理和程序设计语言理论研究的参考资料。作为高年级本科生程序设计语言概论的教材,本书涵盖了2001ACM/IEEE-CS联合拟定的与程序设计语言相关的知识点以及1978ACM教程CS8科目的内容。本书新版本的目标是将详细而精确的语言资料和自本书1993年第一版出版以来程序设计语言在流行趋势和使用上的变化结合在一起,修改并扩充所涵盖的领域,改进并提高例子和习题的实用性,并尽量保留原有的结构。学生并不需要掌握任何一种特定的语言,然而,具有使用一种语言的经验对于本书的学习是有益的,当然,学生还应该学过数据结构和离散数学等课程。本书使用的主要语言有C,C++,Java,Ada,ML,Haskell,Scheme和Prolog,其他语言也略有提及。本书介绍了程序设计语言的一般概念,包括程序设计语言的语法和语义,涉及命令式语言、面向对象语言、函数式语言、逻辑式语言和并行语言等多种范例,分析了各种语言的设计原理和内在机制,讨论了语言的理论基础和实现时必须考虑的问题。本书可用于计算机及其相关专业学生的双语教材,软件与理论专业研究生相关课程的参考书,也可供计算机专业人员参考。

作者简介

暂缺《程序设计语言——原理与实践》作者简介

图书目录

第1章 引言
1.1 什么是程序设计语言
1.2 程序设计语言中的抽象
1.2.1 数据抽象
1.2.2 控制抽象
1.3 计算范例
1.4 语言定义
1.5 语言翻译
1.6 语言设计
习题
注释与参考文献
第2章 历史
2.1 早期历史:第一位程序员
2.2 20世纪50年代:第一种程序设计语言
2.3 20世纪60年代:程序语言的迅猛发展
2.4 20世纪70年代:简单性、抽象性、语言研究
2.5 20世纪80年代:程序设计的新方向和面向对象语言的产生
2.6 20世纪90年代:稳定发展、Internet,库及脚本语言
2.7 未来的方向
习题
注释与参考文献
第3章 语言设计原理
3.1 语言的历史和设计标准
3.2 语言的效率
3.3 规律性
3.4 进一步的语言设计原理
3.5 C++:语言设计的实例研究
3.5.1 背景
3.5.2 第一次实现
3.5.3 发展
3.5.4 标准化
3.5.5 小结
习题
注释与参考文献
第4章 语法
4.1 程序设计语言的词法结构
4.2 上下文无关文法和BNF范式
4.2.1 将BNF规则作为等式
4.3 语法分析树和抽象语法树
4.4 二义性、结合性和优先性
4.5 EBNF和语法图
4.6 语法分析的技术和工具
4.7 语言的词法、语法和语义
习题
注释与参考文献
第5章 基本语义
5.1 属性、约束和语义函数
5.2 声明、块和范围
5.3 符号表
5.4 名称解析与重载
5.5 分配、生命期和环境
5.6 变量与常量
5.6.1 变量
5.6.2 常量
5.7 别名、悬垂引用和无用单元
5.7.1 别名
5.7.2 悬垂引用
5.7.3 无用单元回收
习题
注释与参考文献
第6章 数据类型
6.1 数据类型和类型信息
6.2 简单类型
6.3 类型构造器
6.3.1 笛卡儿积
6.3.2 联合
6.3.3 子集
6.3.4 数组和函数
6.3.5 指针和递归类型
6.3.6 数据类型和环境
6.4 简单语言中的类型命名法
6.4.1 C语言
6.4.2 Java语言
6.4.3 Ada语言
6.5 类型等价
6.6 类型检查
6.6.1 类型相容性
6.6.2 隐式类型
6.6.3 重叠类型和多类型值
6.6.4 共享操作
6.7 类型转换
6.8 多态类型检查
6.9 显式多态性
习题
注释与参考文献
第7章 控制表达式和语句
7.1 表达式
7.2 条件语句标志
7.2.1 if语句
7.2.2 case和switch语句
7.3 WHILE循环及变量
7.4 关于GOTO的争论
7.5 异常处理
7.5.1 异常
7.5.2 异常处理程序
7.5.3 控制
7.5.4 异常规范说明和用C++写的例子
习题
注释与参考文献
第8章 控制Ⅱ——过程和环境
8.1 过程定义和活跃状态
8.2 过程的语义
8.3 参数传递机制
8.3.1 按值传递
8.3.2 按引用传递
8.3.3 按值-结果传递
8.3.4 按名传递和延迟计算
8.3.5 参数传递机制及参数规范
8.3.6 参数的类型检查
8.4 过程的环境、活跃状态和存储分配
8.4.1 全静态环境
8.4.2 基于栈的运行环境
8.4.3 动态计算过程和全动态环境
8.5 动态内存管理
8.5.1 自由空间的维护
8.5.2 存储回收
8.6 异常处理和环境
习题
注释与参考文献
第9章 抽象数据类型和模块
9.1 抽象数据类型的代数规范
9.2 抽象数据类型机制和模块
9.2.1 抽象数据类型机制
9.2.2 模块
9.3 C与C++的命名空间及Java包的独立编译
9.3.1 C和C++的独立编译
9.3.2 C++的命名空间的Java包
9.4 Ada包
9.5 ML中的模块
9.6 早期语言中的模块
9.6.1 Euclid
9.6.2 CLU
9.6.3 Modula-2
9.7 抽象数据类型机制中的问题
9.7.1 模块不是类型
9.7.2 模块是静态实体
9.7.3 输出类型的模块未对变量上的操作进行合理控制
9.7.4 不能总是合理表示对输入类型依赖关系的模块
9.7.5 模块定义未包含给定操作的语义规范
9.8 抽象数据类型的数学基础
习题
注释与参考文献
第10章 面向对象的程序设计
10.1 软件重用与独立性
10.2 Java语言:对象、类和方法
10.3 继承
10.4 动态绑定
10.5 C++语言
10.6 Smalltalk
10.7 面向对象语言的设计问题
10.7.1 类与类型
10.7.2 类与模块
10.7.3 继承与多态
10.8 面向对象语言的实现问题
10.8.1 对象及方法的实现
10.8.2 继承和动态约束
10.8.3 分配和初始化
习题
注释与参考文献
第11章 函数式程序设计
11.1 函数和程序
11.2 用命令式语言进行函数式程序设计
11.3 Scheme:LISP的一种“方言”
11.3.1 Scheme的元素
11.3.2 Scheme中的数据结构
11.3.3 Scheme中的编程技巧
11.3.4 高阶函数
11.4 ML:带静态类型的函数式语言
11.4.1 ML基础
11.4.2 ML中的数据结构
11.4.3 ML中的高阶函数和Currying
11.5 延迟计算
11.6 Haskell:一种支持重载的惰性语言
11.7 函数编程的数学基础Ⅰ:递归函数
11.8 函数编程的数学基础Ⅱ:lambda演算
习题
注释与参考文献
第12章 逻辑式程序设计
12.1 逻辑和逻辑程序
12.2 Horn子句
12.3 消解与合一
12.4 Prolog语言
12.4.1 符号和数据结构
12.4.2 Prolog的执行
12.4.3 算术运算
12.4.4 合一
12.4.5 Prolog搜索策略
12.4.6 循环和控制结构
12.5 逻辑设计的问题
12.5.1 合一中的出现—检查问题
12.5.2 失败与否定
12.5.3 Horn子句不表示所有的逻辑
12.5.4 逻辑程序设计中的控制信息
12.6 逻辑程序设计的推广:约束式逻辑程序设计和等式系统
12.6.1 约束式逻辑程序设计
12.6.2 等式系统
习题
注释与参考文献
第13章 形式语义
13.1 一种简单语言
13.2 操作语义
13.2.1 逻辑推理规则
13.2.2 整数算术表达式的归约规则
13.2.3 环境和赋值
13.2.4 控制
13.2.5 在程序语言中实现操作语义
13.3 指称语义
13.3.1 语法域
13.3.2 语义域
13.3.3 语义函数
13.3.4 整数算术表达式的指称语义
13.3.5 环境和赋值
13.3.6 控制语句的指称语义
13.3.7 指称语义的程序语言实现
13.4 公理语义
13.4.1 wp的一般性质
13.4.2 简单语言的公理语义
13.5 程序的正确性证明
习题
注释与参考文献
第14章 并行程序设计
14.1 并行处理简介
14.2 并行处理与程序设计语言
14.2.1 没有明显并行机制的并行编程
14.2.2 进程的创建和销毁
14.2.3 语句级并行
14.2.4 过程级并行
14.2.5 程序级并行
14.3 线程
14.3.1 Java中的线程
14.3.2 用Java解决有限缓冲区问题
14.4 信号量
14.4.1 用信号量实现有限缓冲区
14.4.2 使用信号量的困难
14.4.3 信号量的实现
14.5 管程
14.5.1 作为管程的Java同步对象
14.5.2 Ada95中的并行和管程
14.6 消息传递
14.6.1 Ada中的task会合
14.7 非命令式语言中的并行
14.7.1 LISP中的并行性
14.7.2 Prolog中的并行性
习题
注释与参考文献
参考文献 

本目录推荐