出版时间:2004-5-1 出版社:电子工业出版社 作者:Kenneth C.Louden 页数:522 字数:864000 译者:黄林鹏
Tag标签:无
内容概要
本书介绍了程序设计语言的一般概念,包括程序设计语言的语法和语义,涉及命令式语言、面向对象语言、函数式语言、逻辑式语言和并行语言等多种范例,分析了各种语言的设计原理和内在机制,讨论了语言的理论基础和实现时必须考虑的问题。
本书可用于计算机及其相关专业学生的双语教材,软件与理论专业研究生相关课程的参考书,也可供计算机专业人员参考。
书籍目录
第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章 并行程序设计习题注释与参考文献参考文献
图书封面
图书标签Tags
无
评论、评分、阅读与下载