编译原理上机实习指导书

编译原理上机实习指导书

ID:46549906

大小:199.00 KB

页数:21页

时间:2019-11-25

编译原理上机实习指导书_第1页
编译原理上机实习指导书_第2页
编译原理上机实习指导书_第3页
编译原理上机实习指导书_第4页
编译原理上机实习指导书_第5页
资源描述:

《编译原理上机实习指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《编译原理上机实习》指导书一、上机实习目的理解编译程序的构造原理,掌握编译程序的构造方法与技术。通过实习,使学生既加深对编译原理基础理论的理解,又提高动手能力,特别是提高软件设计能力。二、上机实习要求在理解编译原理基本思想的基础上,选择一个自己熟悉的程序设计语言,完成编译程序的设计和实现过程。编译程序的设计可以采川自顶向卜•和自底向上两种不同的方法。由于许多高级语言(如PASCAL,C)屮的语法成分都是递归定义的,所以本实验采用递归子程序法,这是一种自顶向下的的编译方法,曲木思想是对源程序的每个(或若干个)语法成分编制一个处

2、理了程序,从处理<程序〉这个语法成分的子程序开始,在分析过程屮调用一系列过程或函数,对源程序进行语法和语义分析,直到整个源程序处理完毕为止。本上机实习是为某个计算机语言设计一个编译程序,完成词法分析、语法分析、语义分析等功能,并生成某种机器上的目标代码。三、上机实习步骤1•阅读《上机实习指导书》。2.根据设计要求写算法,画程序框图3.根据框图编写编译程序4.输入编译程序并上机调试5.撰写上机实习报告四、上机实习内容1、题目:C语言小了集编译程序的实现2、C语言小子集的文法规则:<程序>::=main(){〈分程序>}〈分程序

3、>::=〈变量说明部分〉;<语句部分〉<变量说明部分〉::二<变量说明X标识符表〉<变量说明〉::=int〈标识符表〉::二<标识符表〉,〈标识符〉〈标识符表〉::二〈标识符〉<标识符>::=〈字母〉<标识符〉::二<标识符>〈字母〉<标识符〉::二<标识符X数字〉<语句部分〉::二〈语句部分〉;〈语句>I〈语句〉<语句〉::=〈赋值语句>

4、〈条件语句>

5、<循环语句>

6、<复合语句〉<复合语句>::={<语句部分>}<赋值语句〉::二〈标识符>二<表达式〉<条件〉::二<表达式><关系运算符><表达式〉<表达式〉::二〈项>I

7、<表达式X加法运算符><项><项>::二〈因子>

8、〈项><乘法运算符X因子〉<因子〉::=〈标识符>

9、〈常量〉

10、(<表达式〉)<常量〉::=<无符号整数〉〈无符号整数>::二<数字序列〉<数字序列〉::垠数字序列>〈数字〉<数字序列〉::X数字〉〈加法运算符>::=+卜〈乘法运算符>::=*!/<关系运算符>::=<

11、>

12、!=

13、>=

14、<=

15、=〈条件语句>::=if(〈条件〉)〈语句部分>else<语句部分〉〈循环语句>::=wh订e(<条件〉)do〈语句部分〉<字母〉::=a

16、b

17、c

18、d

19、e

20、f

21、g

22、h

23、i

24、j

25、k

26、l

27、m

28、

29、n

30、o

31、p

32、q

33、r

34、s

35、t

36、u

37、v

38、w

39、x

40、y

41、zv数字>::=OI1I2I3I4I5I6I7I8I93、实现功能:(1)词法分析扫描源程序,根据词法规则,识别单词,填写相应的符号表。(2)语法分析对由源程序作语法分析,确定是否属于C语言小子集,同吋揭示出程序的内在结构。(3)语法错误检査根据C语言小子集的文法规则设置检测手段,通过查错子程序或一些查错语句,报告源程序出错位置、性质等,直至整个程序结束为止。(4)语义分析与目标代码生成在语法分析的基础上,进行语义分析,生成输入源程序的目标代码。输入源程序的目标代码可以建立在一

42、个假想的处理机(虚拟机)上,也可以以所学的汇编语言为基础。输入源程序样本:main(){inta,b,x,y,max;a=l();b=l;while(a>0){b=a+b*a;a=a-l;}x=a+b;y=b+b;if(x>y)max=xelsemax=y}五、附录:PLO编译程序的实现1.PLO概述PLO语言是一种类PASCAL语言,是教学用程序设计语言,它比PASCAL语言简单,作了一些限制。PL0的程序结构比较完全,赋值语句作为基木结构,构造概念有顺序执行、条件执行和重复执行,分别由BEGIN/END.IF和WHILE

43、语句表示。此外,PLO还具有子程序概念,包括过程说明和过程调用语句。在数据类型方面,PLO只包含唯一•的整型,可以说明这种类型的常量和变量。运算符有+,-,*,/,=,<>,<,>,<=,>=,(,)。说明部分包括常量说明、变量说明和过程说明。2.PLO语言的文法规则<程序>::=<分程序>•〈分程序>::=[〈常录说明部分);][〈变量说明部分〉;]{〈过程说明部分>;}〈语句部分〉〈常量说明部分〉::二const/常量定义>{,〈常量定义>}〈常量定义〉::=〈标识符>=〈无符号整数〉<无符号整数〉::二<数字>{〈数字

44、>}〈变量说明部分>::=var<标识符〉{〈标识符>}〈标识符〉::二〈字母>{〈字母>I〈数字>}<过程说明部分〉::N过程首部X分程序〉<过程首部〉::=procedure<标识符〉〈语句部分〉::二<语句>1〈复合语句〉<复合语句〉::=begin<语句>{;<语旬>}end〈语句

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

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

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