购物车中还没有商品,赶紧选购吧!
编译原理实验教程(配光盘) 张昱 陈意云 高等教育出版社
商品价格
降价通知
定价
手机购买
商品二维码
配送
北京市
服务
高教自营 发货并提供售后服务。
数量

推荐商品

  • 商品详情
手机购买
商品二维码
加入购物车
价格:
数量:
库存   个

商品详情

商品名称:编译原理实验教程(配光盘)
ISBN:9787040261509
出版社:高等教育出版社
出版年月:2009-05
作者:张昱 陈意云
定价:35.00
页码:360
装帧:平装
版次:1
字数:560
开本:16开
套装书:否


本书是“编译原理”相关课程的实验教材,以“源语言-抽象语法树-低级中间表示-汇编代码的内部表示-x86/MIPS汇编”为主线搭建编译原理课程的实验体系,设计安排了各种循序渐进、规模适度“综观全局、实现局部”、强调工程质量规范的课程设计。第2章通过实现单函数的无类型结构化语言SimpleMiniJOOL的简单解释器引导读者开始编译实验的实践;第3章到第8章围绕多函数的强类型结构化语言SkipOOMiniJOOL展开有关词法分析、语法分析、语义分析、低级中间代码生成、汇编代码生成、寄存器分配等多种编译原理骨干实验;第9章围绕强类型的面向对象语言MiniJOOL展开有关面向对象编译的高级实验。本书的课程实验涉及多种编程环境和工具,其工程开发接近实际。本书配套光盘中提供了实验支持库和课程设计开发包。本书可作为高等院校计算机科学及相关专业的编译原理实验教材,既可用来开展与理论课程教学同步的配套实验,又可用来安排独立的综合性实践课程。

本书还可作为软件工程硕士研究生工程实践案例教材,以及供计算机软件工程技术人员参考使用。

第1章 概述
  1.1 本书的研制背景与目标
  1.2 本书课程实验的构成
   1.2.1 要实现的源语言
   1.2.2 目标机的选择
   1.2.3 中间表示
   1.2.4 汇编代码的内部表示
   1.2.5 编译器组件及本书的课程实验概览
  1.3 开发环境与工具
   1.3.1 开发环境与工具简介
   1.3.2 环境变量设置
   1.3.3 Eclipse的安装和使用
   1.3.4 XML与Ant简介
  1.4 实验软件包
  1.5 课程实验开展建议
   1.5.1 测试环境
   1.5.2 课程设计提交要求
   1.5.3 过程管理与控制
第2章 一个简单的程序解释器
  2.1 SimpleMiniJOOL语言
  2.2 课程设计1:一个简单的程序解释
  2.3 实验运行平台
   2.3.1 实验平台接口
   2.3.2 实验运行平台的工作机制
   2.3.3 实验运行平台的使用
  2.4 Eclipse AST
   2.4.1 AST节点类
   2.4.2 AST类
   2.4.3 ASTVisitor类
   2.4.4 SimpleMiniJOOL语言涉及的AST节点类
   2.4.5 Eclipse AST使用示例
  2.5 AST的图形化显示包——ASTView
   2.5.1 ASTView包中的类
   2.5.2 AST节点的输出属性及其定制
   2.5.3 在ASTViewer中显示节点对应的低级中间表示
  2.6 设计模式
   2.6.1 工厂方法模式
   2.6.2 访问者模式
  2.7 课程设计1开发和测试指南
   2.7.1 主要开发任务
   2.7.2 实现InterpVisitor类的一些指导
   2.7.3 在Eclipse下开发
   2.7.4 在控制台下编译和运行
   2.7.5 测试要求
第3章 词法分析
  3.1 本章课程设计概述
  3.2 MiniJOOL语言的词法
  3.3 课程设计2-1:用JFlex为MiniJOOL语言生成一个词法分析器
   3.3.1 示例
   3.3.2 MiniJOOL语言的词法分析器构造
  3.4 课程设计2-2:手工编写一个简单的词法分析器
   3.4.1 Block语言的词法
   3.4.2 示例
   3.4.3 课程设计任务
   3.4.4 编译和运行指南
  3.5 课程设计2-3:编写一个NFA生成器
   3.5.1 MLex词法规范描述语言
   3.5.2 课程设计指导
   3.5.3 课程设计任务
  3.6 课程设计2-4:编写一个词法分析器的生成器
   3.6.1 LexerCodeGenerator的输入和输出示例
   3.6.2 课程设计指导
  3.7 JFlex词法规范
   3.7.1 用户代码
   3.7.2 选项和声明
   3.7.3 词法规则
   3.7.4 如何匹配输入流
第4章 语法分析
  4.1 SkipOOMiniJOOL语言的语法
   4.1.1 类型、常量和变量
   4.1.2 语句
   4.1.3 表达式
   4.1.4 SkipOOMiniJOOL程序的 总体结构
   4.1.5 一个SkipOOMiniJOOL程序 示例
  4.2 本章课程设计概述
  4.3 课程设计3-1:手工编写一个 语法分析器
   4.3.1 SimpleBlock语言
   4.3.2 如何引用课程设计2-2的 词法分析器类
   4.3.3 课程设计指导
   4.3.4 课程设计任务
  4.4 课程设计3-2:用CUP生成 一个能分析合法程序的语法分析器
   4.4.1 示例1:SimpleBlock语言的 语法分析器
   4.4.2 SkipOOMiniJOOL语言涉及AST节点类
   4.4.3 示例2:Block语言的 语法分析器
   4.4.4 课程设计任务
  4.5 课程设计3-3:用JavaCC生成 一个语法分析器
   4.5.1 示例:Block语言及其 子语言的分析器
   4.5.2 课程设计任务
  4.6 课程设计3-4:用CUP生成一个 有错误处理能力的语法分析器
   4.6.1 错误类型与错误信息管理
   4.6.2 错误恢复与处理机制
   4.6.3 示例
   4.6.4 课程设计任务
  4.7 课程设计3-5:用JavaCC生成一个 有错误处理能力的语法分析器
   4.7.1 JavaCC的错误恢复机制
   4.7.2 错误恢复与处理示例
   4.7.3 课程设计任务
  4.8 CUP与YACC
   4.8.1 YACC简介
   4.8.2 CUP与YACC的文法 规范描述文件的结构
   4.8.3 文法符号
   4.8.4 一个简单的例子
   4.8.5 错误恢复
第5章 语义分析
  5.1 SkipOOMiniJOOL语言的静
   5.1.1 非形式描述部分
   5.1.2 形式描述部分:类
  5.2 本章课程设计概述
  5.3 课程设计4-1至课程设计特征概述
  5.4 课程设计4-1:为源程序对AST构造符号表
   5.4.1 Block语言的语义特
   5.4.2 示例:为Block程AST构造符号表
   5.4.3 课程设计指导和任
  5.5 课程设计4-2:利用AST信息开展语义检查.
   5.5.1 示例:利用BlockAST及其符号表信语义检查
   5.5.2 课程设计指导与任
  5.6 课程设计4-3:对源程序关AST进行语义检查
   5.6.1 示例:对Block程AST进行语义检查
   5.6.2 课程设计注意事项
  5.7 课程设计4-4:在语法分析构造符号表
   5.7.1 课程设计4-4和课关联的文件
   5.7.2 示例:带符号表构语言分析器
   5.7.3 课程设计任务
  5.8 课程设计4-5:在语法分析开展语义检查
   5.8.1 示例:带语义检查语言分析器
   5.8.2 课程设计要点
第6章 中间表示的转换
  6.1 本章课程设计概述
  6.2 低级中间表示LIR
   6.2.1 LIR设计特点简介
   6.2.2 LIR类型
   6.2.3 LIR操作数
   6.2.4 LIR语句
  6.3 课程设计5-1:SkipOOMiniJOOL 语言的AST到LIR的转换器
   6.3.1 课程设计指导
   6.3.2 课程设计任务
  6.4 课程设计5-2和课程设计5-3
第7章 汇编语言及汇编代码的内部 表示
  7.1 汇编语言简介
  7.2 MIPS汇编语言
   7.2.1 五阶段流水以及流水可见性
   7.2.2 数据表示与对齐
   7.2.3 寄存器
   7.2.4 地址空间
   7.2.5 寻址方式
   7.2.6 过程调用约定
   7.2.7 伪指令
   7.2.8 常用MIPS汇编指令
  7.3 x86汇编语言
   7.3.1 处理器执行周期和数据表示
   7.3.2 寄存器
   7.3.3 地址空间
   7.3.4 寻址方式
   7.3.5 过程调用
   7.3.6 AT&T汇编语法与Intel汇编 语法的区别
   7.3.7 伪指令
   7.3.8 常用x86汇编指令
  7.4 汇编代码的内部表示
   7.4.1 AIR库的组成及设计特点
   7.4.2 使用AIR库编程的步骤
   7.4.3 配置文件格式及示例
   7.4.4 符号编码类的代码生成
   7.4.5 汇编代码的表示、创建与 输出
第8章 汇编代码生成
  8.1 本章课程设计概述
  8.2 汇编代码生成器设计中的问题
  8.3 汇编代码生成器的开发步骤
  8.4 edu.ustc.cs.compile.lir.opt包及其使用
   8.4.1 edu.ustc.cs.compile.opt.base 包:抽象层
   8.4.2 edu.ustc.cs.compile.opt.lir包:LIR实现层
  8.5 寄存器分配
   8.5.1 线性扫描寄存器分配算法
   8.5.2 实验软件包中的寄存器分配器
  8.6 汇编代码生成的代码框架
   8.6.1 基于LIR流图结构的汇编代码生成
   8.6.2 AST到汇编代码的生成
  8.7 MIPS汇编代码的生成与执行
   8.7.1 MIPS汇编语言与 SkipOOMiniJOOL语言中部分 结构的对应关系
   8.7.2 利用SPIM解释执行MIPS汇编代码
  8.8 x86汇编代码的生成与执行
   8.8.1 LIR语句的转换
   8.8.2 x86汇编代码的生成
第9章 面向对象语言的编译
  9.1 MiniJOOL语言特征
   9.1.1 一个MiniJOOL程序示例
   9.1.2 MiniJOOL程序的总体结构
   9.1.3 类类型及其使用
  9.2 本章课程设计概述
  9.3 课程设计8-1:构造MiniJOOL语言的词法语法分析器
  9.4 课程设计8-2:构造MiniJOOL语言的语义检查器
  9.5 面向MiniJOOL语言的LIR
   9.5.1 对面向对象特征及其处理的设计考虑
   9.5.2 LIR中的类对象存储布局和类的类型信息表示
   9.5.3 LIR中虚方法表结构以及 运行时类型判断
  9.6 课程设计8-3:构造MiniJOOL-Ⅰ语言的AST到LIR的转换器
   9.6.1 课程设计指导
   9.6.2 课程设计任务
  9.7 课程设计8-4:构造MiniJOOL-Ⅱ语言的AST到LIR的转换器
  9.8 课程设计8-5:构造MiniJOOL-Ⅲ语言的AST到LIR的转换器
  9.9 课程设计8-6:构造MiniJOOL语言的AST到LIR的转换器
  9.10 课程设计8-7:构造MiniJOOL语言汇编代码生成器
   9.10.1 课程设计指导
   9.10.2 课程设计任务
第10章 综合性课程设计
  10.1 课程设计内容
   10.1.1 可选的编译器组件
   10.1.2 各编译器组件的组合方式
  10.2 课程设计实施方法
  10.3 答辩与考评要求
附录
  附录1 MiniJOOL语言的词法记号类型及标识
  附录2 运算符的优先级与结合性
  附录3 MLex词法规范语言的EBNF表示
  附录4 SimpleMiniJOOL语言语法的EBNF表示
  附录5 SkipOOMiniJOOL语言语法的EBNF表示
  附录6 MiniJOOL语言语法的EBNF表示
  附录7 与本书有关的Eclipse AST节点类及其含义
  附录8 MIPS-SPIM汇编语言的EBNF定义
  附录9 采用AT&T语法的x86汇编 语言的EBNF定义
  附录10 实验软件包提供的可用编译器 组件
参考文献

对比栏

1

您还可以继续添加

2

您还可以继续添加

3

您还可以继续添加

4

您还可以继续添加