pl0扩展编译器设计文档

pl0扩展编译器设计文档

ID:8801142

大小:383.59 KB

页数:28页

时间:2018-04-08

pl0扩展编译器设计文档_第1页
pl0扩展编译器设计文档_第2页
pl0扩展编译器设计文档_第3页
pl0扩展编译器设计文档_第4页
pl0扩展编译器设计文档_第5页
资源描述:

《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袁

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。