一.本程序仅考虑由下面产生式所定义的程序语句:
s →if b then s else s | while b do s | begin l end | a
l →s;l | s
a →i:= e
b → b∧b|b∨b|~b|(b)|i rop i|i
其中,各个非终结符的含义是:
s---语句。
l—语句串。
a—赋值句。
b---布尔表达式。
e---算术表达式。
各个终结符的含义:
i---整型变量或常数,布尔变量或常数;
rop---为六种关系运算符的代表;
---起语句分隔作用;
=--赋值符号。
--逻辑非运算符;
---逻辑与运算符;
---逻辑或运算符;
规定程序是由一条语句或由begin和end嵌套起来的复合语句组成的,并且规定的语句末加上#@表示程序结束。下面是符合规定的程序示例:
begin
a:=a+b*c;
c:=a+2;
while a while a>b do
if m=n then c:=d
else while a<=d do
a:=dend#
二.算术表达式的lr分析表。
算术表达式文法g[e]如下:
e→e+e|e*e|(e)|i
将文法g[e]拓广为文法g’[e]:
0)s‘→e
1)e→e+e
2)e→e*e
3)e→(e)
4)e→i算术表达式的slr(1)分析表。
三.布尔表达式的分析表。
布尔表达式的文法如下:
b → b∧b|b∨b|~b|(b)|i rop i|i
为了便于语法分析加工处理。将文法改为如下形式g[s]:
b → bab|bob|~b|(b)|i rop i|i
ba →b∧
bo→b∨将文法拓广为g’[s]:
0)s’→b
1)b→i2)b→i rop i
3)b→(b)
4)b→not b
5)a→b and
6)b→ab
7)o→bor
8)b→ob
布尔表达式的slr(1)分析表:
四.程序语句的分析表。
程序语句的文法如下:
s→if e then s else s| while e do s|begin l end|a
l→s;l|s
由于在编译程序设计与实现中,我们将赋值语句与算术表达式归为一类处理,故在此将赋值语句仅看成为程序语句中的一个终结符a,将布尔表达式b也看作为终结符e。将文法拓广为:
0)s’→s
1)s→if e then s else s
2)s→while e do s
3) s→begin l end
4)s→a5)l→s
6)l→s;l
程序语句的slr(1)分析表:
根据上述给定的内容,一周课程设计要完成设计报告,用word文档给出,具体内容如下要求:
第一部分:词法分析。
一.词法分析的功能:
输入---源程序文件。
输出---1)相应token序列。
2)关键字、界限符、常数等内部码。
二.词法分析程序设计。
1.单词token序列。
2.关键字等对照表。
3.画出自动机转换图。
三.程序实现。
1.数据结构。
2.算法设计。
四.心得体会。
第二部分语法分析。
一.根据给定的文法画出算术表达式、布尔表达式、程序语句的lr(0)项目集规范族,验证上述的slr分析表是否正确。
二.语法分析程序的设计。
1.分析框图,即程序之间的调用关系。
2,四元式的结构形式。
三.程序实现。
1.数据结构。
2.算法设计。
四.心得体会。
电子技术课程设计报告要求
一 电子技术课程设计名称 目的 内容和要求。名称 基于icl7106的三位半数字万用表设计与制作。目的 学习用cad技术进行电子线路设计方法,设计 制作 调试数字万用表。数字万用表又叫数字多用表 数字三用表 数字复用表,是一种多功能 多量程的测量仪表,常用的数字万用表可测量直流电流 直流电压 交流电...
电子技术课程设计报告要求
湖南科技学院。课程设计报告。课程名称 电子技术课程设计。设计题目 基于pt100设计温度计。系别 电子工程系。专业 电子科学与技术。班级 电子1002班。学生姓名 颜小勤肖亚军阳武杏。学号 201006003214 201006003208 201006003209 起止日期 2012 9 10 2...
电子技术课程设计报告格式要求
2012级机械设计制造及其自动化专业。电子技术课程设计 小一宋体居中 题目 二号楷体居中 姓名 宋体小三 院别 工学院 专业 机械设计制造及其自动化 学号。指导教师 宋体小三 2014年12月。工学院课程设计评审表。电子技术课程设计 课程设计任务书。题目 黑体小二居中 1 设计任务与要求 黑体四号 ...