没有合适的资源?快使用搜索试试~ 我知道了~
首页FOR循环语句的翻译程序设计LL(1)法、输出四元式(含代码和实验报告册).doc
FOR循环语句的翻译程序设计LL(1)法、输出四元式(含代码和实验报告册).doc
需积分: 20 26 下载量 56 浏览量
更新于2023-03-16
4
收藏 549KB DOC 举报
FOR循环语句的翻译程序设计LL(1)法、输出四元式(含代码和实验报告册).doc
资源详情
资源推荐
学 号:
课 程 设 计
题 目
FOR 循环语句的翻译程序设计
(LL(1)法、输出四元式)
学 院 计算机科学与技术
专 业 计算机科学与技术
班 级
姓 名
指导教师 陈天煌
课程设计任务书
2012
年
01
月
03
日
武汉理工大学《编译原理》课程设计
学生姓名: 专业班级:
指导教师: 陈天煌 工作单位: 计算机科学与技术学院
题目: FOR 循环语句的翻译程序设计(LL(1)法、输出四元式)
初始条件:
理论:学完编译课程,掌握一种计算机高级语言的使用。
实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进
行设计。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要
求)
(1) 写出符合给定的语法分析方法的文法及属性文法。
(2) 完成题目要求的中间代码四元式的描述。
(3) 写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。
(4) 编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
(5) 设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:
1 系统描述(问题域描述);
2 文法及属性文法的描述;
3 语法分析方法描述及语法分析表设计;
4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计;
5 编译系统的概要设计;
6 详细的算法描述(流程图或伪代码);
7 软件的测试方法和测试结果;
8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);
9 参考文献(按公开发表的规范书写)。
时间安排:
设计安排一周:周 1、周 2:完成系统分析及设计。
周 3、周 4:完成程序调试及测试。
周 5:撰写课程设计报告。
设计验收安排:设计周的星期五第 1 节课开始到实验室进行上机验收。
设计报告书收取时间:设计周的次周星期一上午 10 点。
指导教师签名: 2011 年 11 月 18 日
系主任(或责任教师)签名: 2011 年 11 月 18 日
1
武汉理工大学《编译原理》课程设计
FOR 循环语句的翻译程序设计
——LL(1)法、输出四元式
1.系统描述
1.1 问题描述
用 LL(1)法设计、编制、调试一个 FOR(表达式 1;表达式 2;表达式 3)〈赋值
语句〉的语法及语义分析程序,输出四元式。
1.2 功能描述
(1)能够识别出单词、单词类型、单词位置
(2)能够用 LL(1)方法识别单词序列是否符合 FOR 循环文法
(3)能够完成对 FOR 循环中 3 个表达式的翻译
(4)能够完成对 FOR 循环中赋值语句(含复杂表达式)的翻译
(5)能够对 FOR 循环 3 个表达式中有表达式 1 或 3 缺少时翻译
(6)能够用标准化的四元式进行翻译结果输出
(7)能够用四元式清晰、正确地反映 FOR 循环的执行流程
(8) 能够用文本输入 FOR 语句循环,再用 txt 文本输出分析结果
2 文法及属性文法的描述
2.1 文法的语言描述
A->for(条件){赋值语句}
条件->语句 1 语句 2 语句 3
语句 1->i = 表达式; //i 表示标识符
语句 1->;
语句 2->i > 表达式;
语句 2->i < 表达式;
语句 3->i = 表达式;
语句 3->e
赋值语句->m = 表达式 //m 表示标识符,作为左值出现
赋值语句->e
表达式->表达式+表达式
表达式->表达式-表达式
2
武汉理工大学《编译原理》课程设计
表达式->表达式*表达式
表达式->表达式/表达式
表达式->(表达式)
表达式->i //i 表示标识符、常数、字符、或字符串
2.2 属性文法描述
2.2.1 FOR 语句
FOR(C D G)
n C
n+1 if D==true goto Y.start
n+2 goto Y.end+3
Y.start ...................//赋值语句的开始
...... ...................
Y.end ...................//赋值语句结束
Y.end+1 G
Y.end+2 goto n+1
Y.end+3 //跳出循环体后第一条语句
2.2.2 赋值语句
Y->m=E; { m.value=E.Value }
E->E1 op E2 (op: +,-,*,/,>或<)
{
E.place = newtemp; //生成新的变量
E.value =E1.value op E2.value
}
N->(E) { N.value=E.value }
N->i { N.value=i.value }
3.语法分析方法描述及语法分析表设计
3.1 对 LL(1)分析的描述
LL(1):第 1 个 L 表明自顶向下分析是从左向右扫描输入串,第 2 个 L 表明分析
过程中将用最左推导,1 表明只需向右看一个符号便可决定如何推导即选择哪个产生式
(规则)进行推导。从文法的开始符号出发企图推导出与输入的单词串完全相匹配的句
子,若输入串是文法给定的句子,则必能推出,反之必然出错。
LL(1)优点:实现方法简单、直观,便于手工构造或自动生成语法分析器 。文法很
容易写出。
LL(1)缺点:对文法有一定得限制,要求推导过程中紧跟在飞终结符右边可能出现的
终结符集不相交。另外在做语法制导翻译时中间代码的输出方案相对于 LR 法比较复杂。
LR 分析法的句柄即体现了算符的优先级,出现句柄即做相应的归约动作,中间代码很容
易写出,实现很简单。LL(1)是做自顶向下推导,因此设计 LL(1)的语法制导翻译输出
3
武汉理工大学《编译原理》课程设计
中间代码很需要技巧,涉及到了判断符号的优先级。
3.2 语法分析表设计
文法(消除了左递归)及相应的选择符集
NO.
文法 SELECT 集
0 A->f(B){Y} { f }
1 B->CDG { ;,i }
2 Y->e { } }
3 Y->m=E { m }
4 C->; { ; }
5 C->i=E { i }
6 D->iF; { i }
7 F-><E; { < }
8 F->>E { > }
9 G->e { ) }
10 G->i=E { i }
11 E->LM { (,i }
12 M->+LM { +}
13 M->-LM { - }
14 M->e { ),; }
4
剩余50页未读,继续阅读
求知欲望
- 粉丝: 67
- 资源: 186
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- GO婚礼设计创业计划:技术驱动的婚庆服务
- 微信行业发展现状及未来发展趋势分析
- 信息技术在教育中的融合与应用策略
- 微信小程序设计规范:友好、清晰的用户体验指南
- 联鼎医疗:三级甲等医院全面容灾备份方案设计
- 构建数据指标体系:电商、社区、金融APP案例分析
- 信息技术:六年级学生制作多媒体配乐古诗教程
- 六年级学生PowerPoint音乐动画实战:制作配乐古诗演示
- 信息技术教学设计:特点与策略
- Word中制作课程表:信息技术教学设计
- Word教学:制作课程表,掌握表格基础知识
- 信息技术教研活动年度总结与成果
- 香格里拉旅游网设计解读:机遇与挑战并存
- 助理电子商务师模拟试题:设计与技术详解
- 计算机网络技术专业教学资源库建设与深圳IT产业结合
- 微信小程序开发:网络与媒体API详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功