- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
黑龙江大学
编译课程设计文档
学姓名 张冰
编译器的实现方式
Microsoft Visual C++ 6.0
利用SLR(1)的分析方式进行语法分析
编译器功能介绍
首先将非终结符输入(以#结束输入)。
然后输入终结符(以#结束输入)。
输入文法,例如E (i)(用空格代替 - ,以#结束输入文法)。
语法分析中可识别:
while语句,for 语句,if、else语句。
可识别数组,赋值运算,逻辑和赋值判断,+-*/运算。
可将while语句和if、else语句翻译成四元式。
可将源程序翻译为汇编程序。
测试用例与实验结果
测试用的源程序:
void main()
{
int i,j;
if( i 100 i 20)
{
a = b + (c - 3*q) / h;
}
else
{
while(i10)
{
a = a + b;
}
}
}
语法分析所用的语法:
/*
c=char
t=int
f=float
d=double
o=if
u=else
h=for
w=while
*/
生成的FIRST集:
FIRST(A) (ie
FIRST(B) @!|^
FIRST(E) (ie
FIRST(F) (ie
FIRST(K) iohw^ctfd(e
FIRST(M) v
FIRST(P) v
FIRST(Q) ctfd
FIRST(T) (ie
FIRST(U) ctfd
FIRST(V) i
FIRST(W) [=^
FIRST(Z) *^
生成的FOLLOW集:
FOLLOW(A) ];,})@!|(ie+-*/
FOLLOW(B) (ie
FOLLOW(E) ];,})@!|(ie+-
FOLLOW(F) ];,})@!|(ie+-*/
FOLLOW(K) }
FOLLOW(M) #
FOLLOW(P) #
FOLLOW(Q) iohwctfd(e}
FOLLOW(T) );
FOLLOW(U) *i
FOLLOW(V) ;
FOLLOW(W) ;,
FOLLOW(Z) i
LR(0)项目规范族如下:
I0
M - ·P
P - ·vm(){QK}
I1
M - P·
I2
P - v·m(){QK}
I3
P - vm·(){QK}
I4
P - vm(·){QK}
I5
P - vm()·{QK}
I6
P - vm(){·QK}
Q - ·UZV;
U - ·c
U - ·t
U - ·f
U - ·d
I7
P - vm(){Q·K}
K - ·i=E;K
K - ·E
K - ·o(T){K}u{K}K
K - ·h(i=E;T;i=E){K}K
K - ·w(T){K}K
K - ·QK
K - ·^
E - ·E+A
E - ·E-A
E - ·A
Q - ·UZV;
A - ·A*F
A - ·A/F
A - ·F
U - ·c
U - ·t
U - ·f
U - ·d
F - ·(E)
F - ·i
F - ·e
I8
Q - U·ZV;
Z - ·*
Z - ·^
I9
U - c·
I10
U - t·
I11
U - f·
I12
U - d·
I13
P - vm(){QK·}
I14
K - i·=E;K
F - i·
I15
K - E·
E - E·+A
E - E·-A
I16
K - o·(T){K}u{K}K
I17
K - h·(i=E;T;i=E){K}K
I18
K - w·(T){K}K
I19
K - Q·K
K - ·i=E;K
K - ·E
K - ·o(T){K}u{K}K
K - ·h(i=E;T;i=E){K}K
K - ·w(T){K}K
K - ·QK
K - ·^
E - ·E+A
E - ·E-A
E - ·A
Q - ·UZV;
A - ·A*F
A - ·A/F
A - ·F
U - ·c
U - ·t
U - ·f
U - ·d
F - ·(E)
F - ·i
F - ·e
I20
E - A·
A - A·*F
A - A·/F
I21
A - F·
I22
F - (·E)
E - ·E+A
E - ·E-A
E - ·A
A - ·A*F
A - ·A/F
A - ·F
F - ·(E)
F - ·i
F - ·e
I23
F - e·
I24
Q - UZ·V;
V - ·iW
V - ·i
文档评论(0)