77范文网 - 专业文章范例文档资料分享平台

编译课程设计报告书

来源:网络收集 时间:2018-12-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

课程设计报告

( 2011 -- 2012年度第 1 学期)

名 称: 编译技术课程设计B 题 目: 词法分析器设计

算符优先分析程序设计 基于算符优先分析方法的语法制导翻译程序设计

院 系: 计算机系 班 级: 学 号:

学生姓名: 指导教师 设计周数: 1周

成 绩:

日期: 年 月 日

一、课程设计的目的与要求

1.1 词法分析器设计的实验目的

本实验是为计算机科学与技术专业的学生在学习《编译技术》课程后,为加深对课堂教学内容的理解,培养解决实际问题能力而设置的实践环节。通过这个实验,使学生应用编译程序设计的原理和技术设计出词法分析器,了解扫描器的组成结构,不同种类单词的识别方法。能使得学生在设计和调试编译程序的能力方面有所提高。为将来设计、分析编译程序打下良好的基础。

1.2 词法分析器设计的实验要求

设计一个扫描器,该扫描器是一个子程序,其输入是源程序字符串,每调用一次识别并输出一个单词符号。为了避免超前搜索,提高运行效率,简化扫描器的设计,假设该程序设计语言中,基本字(也称关键词)不能做一般标识符用,如果基本字、标识符和常数之间没有确定的运算符或界符作间隔,则用空白作间隔。

单词符号及其内部表示如表1-1所示,单词符号中标识符由一个字母后跟多个字母、数字组成,常数由多个十进制数字组成。单词符号的内部表示,即单词的输出形式为二元式:(种别编码,单词的属性值)。

表1-1 单词符号及其内部表示

单词符号 BEGIN IF THEN ELSE END 标识符 整型常数 + * ** ( ) 种别编码 1 2 3 4 5 6 7 8 9 10 11 12 单词的属性值 — — — — — 在名字表中的地址 十进制整数 — — — — — 2.算符优先分析程序设计的目的和要求

1

2.1 算符优先分析程序设计的实验目的

本实验是为计算机科学与技术专业的学生在学习《编译技术》课程后,为加深对课堂教学内容的理解,培养解决实际问题能力而设置的实践环节。通过这个实验,使学生应用编译程序设计的原理和技术, 设计、编写和调试算符优先分析程序,了解算符优先分析程序的组成结构,掌握实现通用算符优先分析算法的方法。能使得学生在设计和调试编译程序的能力方面有所提高。为将来设计、分析编译程序打下良好的基础。

2.2 算符优先分析程序设计的实验要求

算符优先分析属于自下而上的分析方法,该语法分析程序的输入是终结符号串(即单词符号串,以一个“#”结尾),如果输入串是句子则输出“YES”,否则输出“NO”和错误信息。

算符优先分析过程与非终结符号无关,当由文法产生了优先关系之后文法也就失去了作用,本题目给出文法的目的是为了便于对语法分析结果进行验证。

(1)文法 设算符优先文法G为:

E?E?T|T

T?T?F|F

F?P?F|P

P?(E)|i

说明:i为整型常数或者为标识符表示整型变量;使用中↑用**表示。

(2)优先关系表 设优先关系表如表1-2所示。

表1-2 优先关系表

+ * ↑ i ( ) # + * ↑ i ( ) #

3.基于算符优先分析方法的语法制导翻译程序设计的目的和要求

2

3.1 基于算符优先分析方法的语法制导翻译程序设计的实验目的

本实验是为计算机科学与技术专业的学生在学习《编译技术》课程后,为加深对课堂教学内容的理解,培养解决实际问题能力而设置的实践环节。通过这个实验,使学生应用编译程序设计的原理和技术, 通过设计、编写和调试语法制导翻译程序,掌握从一种语句的语法和语义出发,构造相应的语义子程序,实现基于算符优先分析方法的语法制导翻译的方法。能使得学生在设计和调试编译程序的能力方面有所提高。为将来设计、分析编译程序打下良好的基础。

3.2 基于算符优先分析方法的语法制导翻译程序设计的实验要求

算符优先分析方法是通过反复把输入符号移进分析栈,使用优先关系表在分析栈顶寻找最左素短语,将其归约为一个非终结符号而实现的。这个分析过程与非终结符号无关,当由文法产生了优先关系之后文法也就失去了作用(所以本题目无需给出文法)。

基于算符优先分析方法的语法制导翻译是在算符优先语法分析的基础上进行翻译工作(即语义分析),每当将一个最左素短语归约为一个非终结符号时,就调用对应产生式的语义子程序,去完成相应的语义翻译工作,这步归约使用的产生式对非终结符号不加区分(即将所有的非终结符号用一个通用的非终结符号表示)。

语法制导翻译程序的输入是终结符号串(即单词符号串,以一个“#”结尾),如果输入符号串是句子,则按照其语义进行翻译,输出等价的四元式序列(作为练习应显示输出)。

4.上机前的准备

为了充分利用上机时间,在进行编译技术上机实验前应做好各种准备工作,具体应包括: (1)复习与上机题目有关的知识,熟悉有关定义、概念和实现算法。 (2)设计出程序流程框图和数据结构,编写出完整的源程序,进行静态检查。 (3)为所编写的程序构思一个运行、调试环境,例如,以什么方式提供输入数据、显示输出数据,如何调用(或启动)编写的程序。制定出程序调试计划和典型输入代码数据。

3

二、课程设计正文

1. 词法分析器设计 1.1 状态转换图

实验分析:如上面的状态转换图所示,词法分析器的设计思路比较简单,但是要注意对空格的“过滤”,需要对字符进行判断,若为空格则指针向后移动。此外如果查找单词时起始是字母则下一步若连续的是字母或者数字都会构成标识符,但是如果开始是数字那么则必须与字符连续的是数字才是常数,否则常数的单词已经结束,进行下一步单词的分析。对于界符和运算符的的分析只需判断单个字符即可,对于已经存入的关键字,需要通过查表操作来完成。

实验中使用的主要的数据结构:node结构体表示每个表项的属性,graph表示名字表和常数表,关键字表用数组存储。

算法简要概述:采用一个字符串Strtoken来存储分析的单词,若未分析完则将正在处理的字符连接到Strtoken后面,若当前单词分析完,则重新对Strtoken进行赋值,直至整个句子全部分析完成。

2. 算符优先分析程序设计

4

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库编译课程设计报告书在线全文阅读。

编译课程设计报告书.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/342260.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: