- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译技术课程设计B实验指导书
《》名称:学 时:
一、目的《》二、要求1所示,单词符号中标识符由一个字母后跟多个字母、数字组成,常数由多个十进制数字组成。单词符号的内部表示,即单词的输出形式为二元式:(种别编码,单词的属性值)。
表2-1 单词符号及其内部表示
单词符号 种别编码 单词的属性值 BEGIN
IF
THEN
ELSE
END
标识符
整型常数
+
*
**
(
) 1
2
3
4
5
6
7
8
9
10
11
12 —
—
—
—
—
在名字表中的地址
十进制整数
—
—
—
—
—
三、6,标识符的字符串)或(7,常数的十进制表示)。
四、Windows操作系统、C++或java语言。
五、
为了充分利用上机时间,在进行编译技术上机实验前应做好各种准备工作,具体应包括:
(1)复习与上机题目有关的知识,熟悉有关定义、概念和实现算法。
(2)设计出程序流程框图和数据结构,编写出完整的源程序,进行静态检查。
(3)为所编写的程序构思一个运行、调试环境,例如,以什么方式提供输入数据、显示输出数据,如何调用(或启动)编写的程序。制定出程序调试计划和典型输入代码数据。
六、思考题
(1)为什么将词法分析器设计为一个子程序?
(2) 状态转换图与程序框图有什么区别?
七、参考书
(1)《程序设计语言编译原理》
(2)《计算机综合实践指导》
实验二 算符优先分析程序设计
实验名称:学 时:
一、目的《》二、要求”结尾),如果输入串是句子则输出“YES”,否则输出“NO”和错误信息。
算符优先分析过程与非终结符号无关,当由文法产生了优先关系之后文法也就失去了作用,本题目给出文法的目的是为了便于对语法分析结果进行验证。
(1)文法 设算符优先文法为:
说明:i为整型常数或者为标识符表示整型变量;使用中↑用**表示。
(2)优先关系表 设优先关系表如表2-3所示。
表2-3 优先关系表
+ * ↑ i ( ) # + * ↑ i ( ) #
三、存放文法符号,变量为栈的栈顶指针,变量存放当前输入符号。为错误处理程序,分析算法见《程序设计语言编译原理》P93。
(2) 算符优先方法的程序设计 在程序设计中需要解决以下几个问题:
①涉及到的主要数据结构
1)优先关系表用一个数组表示,是一个n*n的二维数组(n=文法中终结符号个数+1),其下标为终结符号,其元素的值为终结符号(将“”看作一个特殊的终结符号)对之间的优先关系:“”、“”、“”之一或者为错误类型(题目给出的优先关系表若该位置为空,则通过自己分析,填上适当的错误类型标志),,。
2)分析栈用数组表示,的元素是终结符号、“”或非终结符。
②错误处理程序
该分析程序有错误处理功能,如果分析栈的栈顶元素与当前输入符号之间没有优先关系,说明输入串有语法错误,应该输出错误信息:错误类型、出错位置,并停止语法分析运行。
③扫描器
采用实验一构造的扫描器,作为算符优先分析程序的子程序,每当需要一个单词就调用它。
四、Windows操作系统、C++或java语言。
五、
为了充分利用上机时间,在进行编译技术上机实验前应做好各种准备工作,具体应包括:
(1)复习与上机题目有关的知识,熟悉有关定义、概念和实现算法。
(2)设计出程序流程框图和数据结构,编写出完整的源程序,进行静态检查。
(3)为所编写的程序构思一个运行、调试环境,例如,以什么方式提供输入数据、显示输出数据,如何调用(或启动)编写的程序。制定出程序调试计划和典型输入代码数据。
六、思考题
(1)语法分析器的一般结构是什么?
(2)试将优先关系表中的空位置(无优先关系)填上错误信息。
七、参考书
(1)《程序设计语言编译原理》
(2)《计算机综合实践指导》
实验三 基于算符优先分析方法的语法制导翻译程序设计
实验名称:学 时:一、目的《》二、要求”结尾),如果输入符号串是句子,则按照其语义进行翻译,输出等价的四元式序列(作为练习应显示输出)。
三、表示,各产生式的语义动作表示如下:
注:i为整型常数或者为标识符表示整型变量;
E为算术表达式,为了区分同一个产生式中不同的非终结符号E,使用了下脚标加以区别;
在使用中↑用**表示;
(3) 语法制导翻译程序设计
为了实现算数表达式的语法制导翻译,按照给出产生式的语义动作,对每个产生式设计出相应的语义子程序,语义子程序使用产生式右部文法符号的语义值,这些语义值取自符号表(终结符号)或分析栈的语义值部分(非终结符号)
您可能关注的文档
- 程序调试技术.ppt
- CH4_汇编语言程序设计-陈裕国.ppt
- 第1章 概述2012.ppt
- 项目开发入门:Java EE开发环境.ppt
- 《微机原理及接口技术》实验指导书.doc
- UNIX SHELL基础培训.ppt
- 06q维护维修_4.ppt
- Security5_网络后门与隐身.ppt
- 王建霞-微机原理实验指导书.doc
- 编译原理[张素琴]第2版-答案-清华大学出版社.docx
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
文档评论(0)