资源描述:
《pl0扩展编译器设计文档》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、11061061袁雅辉北京航空航天大学 《编译技术》课程设计文档学号:姓名:2013年11月15日2811061061袁雅辉北京航空航天大学目录一.需求说明21.文法说明22.目标代码说明11二.详细设计121.程序结构122.类/方法/函数功能133.调用依赖关系144.符号表管理方案155.存储分配方案176.解释执行程序*177.出错处理22三.操作说明231.运行环境232.操作步骤23四.测试报告241.测试程序1242.测试程序2243.测试程序3254.测试程序4255.测试程序5(以上为正确程序)256.测试程序6(以下是错误程序)257.测试程序7268.测试程序8269.
2、测试程序92610.测试程序1026五.总结感想27图目录picture14picture25picture36picture47picture58picture614picture7162811061061袁雅辉北京航空航天大学一.需求说明1.文法说明1)获取的原文法:<程序>::=<分程序>.<分程序>::=[<常量说明部分>][<变量说明部分>]{[<过程说明部分>]
3、[<函数说明部分>]}<复合语句><常量说明部分>::=const<常量定义>{,<常量定义>};<常量定义>::=<标识符>=<常量><常量>::=[+
4、-](<无符号整数>
5、<无符号实数>)
6、<字符><字符>::='
7、<字母>'
8、'<数字>'<字符串>::="{十进制编码为32,33,35-126的ASCII字符}"<无符号整数>::=<数字>{<数字>}<无符号实数>::=<无符号整数>.<无符号整数><标识符>::=<字母>{<字母>
9、<数字>}<变量说明部分>::=var<变量说明>;{<变量说明>;}<变量说明>::=<标识符>{,<标识符>}:<类型><类型>::=<基本类型>
10、array'['<无符号整数>']'of<基本类型><基本类型>::=integer
11、char
12、real<过程说明部分>::=<过程首部><分程序>{;<过程首部><分程序>};<函数说明部分>::=<函数首部><分程序
13、>{;<函数首部><分程序>};<过程首部>::=procedure<标识符>'('[<形式参数表>]')';<函数首部>::=function<标识符>'('[<形式参数表>]')':<基本类型>;<形式参数表>::=<形式参数段>{;<形式参数段>}<形式参数段>::=[var]<标识符>{,<标识符>}:<基本类型><语句>::=<赋值语句>
14、<条件语句>
15、<情况语句>
16、<过程调用语句>
17、<复合语句>
18、<读语句>
19、<写语句>
20、
21、<空><赋值语句>::=<标识符>:=<表达式>
22、<函数标识符>:=<表达式>
23、<标识符>'['<表达式>']':=<表达式><函数标识符>:
24、:=<标识符><表达式>::=[+
25、-]<项>{<加法运算符><项>}<项>::=<因子>{<乘法运算符><因子>}<因子>::=<标识符>
26、<无符号整数>
27、<无符号实数>
28、'('<表达式>')'
29、<函数调用语句>
30、<标识符>'['<表达式>']'<函数调用语句>::=<标识符>'('[<实在参数表>]')'<实在参数表>::=<实在参数>{,<实在参数>}<实在参数>::=<表达式>2811061061袁雅辉北京航空航天大学<加法运算符>::=+
31、-<乘法运算符>::=*
32、/<条件>::=<表达式><关系运算符><表达式><关系运算符>::=<
33、<=
34、>
35、>=
36、=
37、<><条件语句>::=i
38、f<条件>then<语句>
39、if<条件>then<语句>else<语句><情况语句>::=case<表达式>of<情况表元素>{;<情况表元素>}end<情况表元素>::=<情况常量表>:<语句><情况常量表>::=<常量>{,<常量>}::=for<标识符>:=<表达式>(downto
40、to)<表达式>do<语句><过程调用语句>::=<标识符>'('[<实在参数表>]')'<复合语句>::=begin<语句>{;<语句>}end<读语句>::=read'('<标识符>{,<标识符>}')'<写语句>::=write'('<字符串>,<表达式>')'
41、write'('<字
42、符串>')'
43、write'('<表达式>')'<字母>:=a
44、b
45、c
46、d…x
47、y
48、z
49、A
50、B…
51、Z<数字>::=0
52、1
53、2
54、3…8
55、92)由于原文法不存在左递归,因此不对文法进行改写。3)文法解读程序设计图1picture1分程序设计图22811061061袁雅辉北京航空航天大学picture2语句设计图32811061061袁雅辉北京航空航天大学picture3因子、项、表达式设计图42811061061袁