编译原理实验教程

出版时间:2009-5  出版社:高等教育出版社  作者:张昱,陈意云 著  页数:347  
Tag标签:无  

前言

  本书是“编译原理”相关课程的实验教材,既可作为与“编译原理”理论课程教学同步展开的配套实验课程教材,也可作为一门独立的综合性实践课程的教材。  “编译原理”课程介绍编译器构造的一般原理、基本设计方法和主要的实现技术。在实际的教学和学习中,大家普遍认为它是一门有用、抽象而难学的课程。其主要原因之一是课程实践环节较为薄弱:缺乏系统的编译原理实验教材,导致不能组织和指导学生进行有广度和深度的课程实践。  在深入调研国外典型编译原理实验内容并对其进行实践的基础之上,结合实际的教学和实践经验,作者设计出一套以“源语言一抽象语法树一低级中间表示一汇编代码的内部表示一x86/MIPs汇编”为主线搭建的、基于组件的编译原理实验体系,其中包括各种循序渐进、规模适度、“综观全局、实现局部”、强调工程质量规范的课程设计,并提供配套的实验支持库和课程设计开发包。全书的课程设计分为以下4个层次,供不同深度的编译原理教学选择合适的实验内容。

内容概要

  是“编译原理”相关课程的实验教材,以“源语言-抽象语法树-低级中间表示-汇编代码的内部表示-x86/MIPS汇编”为主线搭建编译原理课程的实验体系,设计安排了各种循序渐进、规模适度、“综观全局、实现局部”、强调工程质量规范的课程设计。第2章通过实现单函数的无类型结构化语言SimpleMiniJOOL的简单解释器引导读者开始编译实验的实践;第3章到第8章围绕多函数的强类型结构化语言SkiOOMiniJOOL展开有关词法分析、语法分析、语义分析、低级中间代码生成、汇编代码生成、寄存器分配等多种编译原理骨干实验;第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 EclipseAST2.4.1 AST节点类2.4.2 AST类2.4.3 ASTVisitor类2.4.4 SimpleMiniJOOL语言涉及的AST节点类2.4.5 EclipseAST使用示例2.5 AST的图形化显示包——ASTView2.5.1 ASTView包中的类2.5.2 AST节点的输出属性及其定制2.5.3 在ASTViewer中显示节点对应的低级中间表示2.6 设计模式2.6.1 工厂方法模式2.6.2 访问者模式2.7 课程设计l开发和测试指南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 示例l: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与YACC4.8.1 YACC简介4.8.2 CuP与YACC的文法规范描述文件的结构4.8.3 文法符号4.8.4 一个简单的例子4.8.5 错误恢复……第5章 语义分析第6章 中间表示的转换第7章 汇编语言及汇编代码的内部第8章 汇编代码生成第9章 面向对象语言的编译第10章 综合性课程设计

章节摘录

  第1章 概述  编译原理和技术是构造程序设计语言编译器的重要理论和技术基础。随着计算机技术和社会应用需求的发展,编译原理和技术也越来越多地应用在诸如编辑系统、数据处理、软件安全、程序理解和逆向工程等多个领域,并影响着高级语言的实现(如垃圾收集技术、代码移植与移动等)、计算机体系结构的优化(指令集并行、线程级并行等)、新计算机体系结构(如精简指令集计算机、复杂指令集计算机、数据流机、向量机、超长指令字、单指令多数据阵列处理器、带共享内存的多处理器和带分布内存的多处理器)的设计、程序翻译(如二进制翻译、数据库查询解释器)以及提高软件开发效率的工具(如类型检查、边界检查、内存管理)等。因此,“编译原理”这门课程对计算机及相关专业的本科生来说也显得越来越重要。  在“编译原理”课程的教学方面,单纯的理论教学是不够的,需要通过实验加强学生对编译原理和技术知识的理解、领会与掌握。  作为编译原理和技术的实验教材,既可以作为与“编译原理”理论课程教学同步展开的配套实验课程教材,也可以作为一门独立的综合性实践课程的教材。在本章各节中,将依次介绍本书的研制背景与目标、所设计的课程实验的构成、实验环境与工具、配套实验软件包的组成,最后结合作者的实践经验给出一些课程实验开展的建议。  1.1 本书的研制背景与目标  自20世纪80年代中期至2006年,中国科学技术大学计算机专业本科生的编译原理实验一直以阅读和扩展PL/O语言的编译器为基础。PL/O语言过于简单且不支持带参数的函数等,限制了以这种语言为基础的编译原理课程实践的深度和意义。这种实验设置已经不能适应教学的需要和对不断发展的现代编译技术的学习理解。

图书封面

图书标签Tags

评论、评分、阅读与下载


    编译原理实验教程 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7