编译原理课程实验报告示例

编译原理课程实验报告示例

ID:8906722

大小:566.00 KB

页数:27页

时间:2018-04-11

编译原理课程实验报告示例_第1页
编译原理课程实验报告示例_第2页
编译原理课程实验报告示例_第3页
编译原理课程实验报告示例_第4页
编译原理课程实验报告示例_第5页
资源描述:

《编译原理课程实验报告示例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1完成日期:2007-6-20指导老师:蒋宗礼04070010张悦编译原理实验报告04070010张悦2<一>词法的正规式描述标识符:<字母>

2、(<字母>

3、<数字字符>)*(ε

4、_

5、.)(<字母>

6、<数字字符>)*十进制数:(0

7、(1

8、2

9、3

10、4

11、5

12、6

13、7

14、8

15、9)(0

16、1

17、2

18、3

19、4

20、5

21、6

22、7

23、8

24、9)*)(ε

25、.)(0

26、1

27、2

28、3

29、4

30、5

31、6

32、7

33、8

34、9)五.系统实现(一)词法分析器的实现四.系统设计完成整个系统,实现本个实验的要求,需要两个比较大的模块:词法分析器和语法分析器。词法分析器的功能是将输入的程序串分解成一个一个

35、独立的单词,并且记录下每个单词的类型以及数值。这里词法分析器的实现有两种方法:调用一次词法分析器,返回一个词的类型以及数值,以此类推;还有一种方法是条用一次词法分析器将程序串的所有单词都分解出来并保存到一个地方(比如线形表)以便将来使用。我采用的是前者,因为这样只需要对整个程序访问一遍语法分析器的功能是将已经分解好的单词按照一定的规范(产生式)组合起来,由此来确定输入程序的意思。我的设计是“语法分析器调用词法分析器”,当语法分析其分析进行不下去的时候调用词法分析器获取一个单词,继续进行分析。而语义功能是镶嵌在语法分析其当中的,当语法

36、分析器分析出用什么产生式的时候作相应的语义处理。3.编写测试程序,反复调用函数scan(),输出单词种别和属性。4.改写文法,构造语法分析程序,要求按照最左派生的顺序输出派生的产生式序列;5.改写语法分析程序,构造三地址代码生成程序。6.处理的源程序存放在文件中,它可以包含多个语句;从键盘读入数据,分析出一个单词。返回单词种别(用整数表示),返回单词属性(不同的属性可以放在不同的全局变量中)。1)2)3)三.实验要求1.编制正规式以及正规文法,画出状态图;2.根据状态图,设计词法分析函数intscan(),完成以下功能:二.实验内容

37、1.编制一个能够分析三种整数、标识符、主要运算符和主要关键字的词法分析程序。2.用二维预约分析表,编制一个能够进行语法分析并生成派生的产生式序列的编译程序。3.用递归子程序法,编制一个能够进行语法分析并生成三地址代码的微型编译程序。一.实验目的基本掌握计算机语言的词法分析程序的开发方法。以及掌握计算机语言的语法分析程序设计与属性文法应用的实现方法。锻炼自己的编程能力和逻辑思维能力,体会计算机编译器的奥妙之处04070010张悦3<三>、状态图:>->a

38、b

39、c

40、d

41、e

42、f

43、g

44、i

45、j

46、k

47、l

48、m

49、n

50、o

51、p

52、q

53、r

54、s

55、t

56、u

57、v

58、

59、w

60、x

61、y

62、z

63、A

64、B

65、C

66、D

67、E

68、F

69、G

70、H

71、I

72、J

73、K

74、L

75、M

76、N

77、O

78、P

79、Q

80、R

81、S

82、T

83、U

84、V

85、W

86、X

87、Y

88、Z<数字字符>->0

89、1

90、2

91、3

92、4

93、5

94、6

95、7

96、8

97、9->(<字母>

98、<数字字符>)

99、ε->(ε

100、_

101、.)->(ε

102、.)->(0

103、1

104、2

105、3

106、4

107、5

108、6

109、7)

110、ε->(0

111、1

112、2

113、3

114、4

115、5

116、6

117、7

118、8

119、9

120、a

121、b

122、c

123、d

124、e

125、f)

126、ε将状态合起来,得:(0)-><1~9>(1)

127、0(4)

128、<字母>(12)

129、<

130、运算符和分隔符>(17)(1)-><0~9>(1)

131、.(2)(2)-><0~9>(3)(3)-><0~9>(3)(4)->.(2)

132、<1~7>(5)

133、0(13)

134、x(8)

135、X(8)(5)-><0~7>(5)

136、.(6)(6)-><0~7>(7)(7)-><0~7>(7)(8)-><1~9>(9)

137、(9)

138、0(14)(9)-><0~9>(9)

139、(9)

140、.(10)(10)-><0~9>(11)

141、(11)(11)-><0~9>(11)

142、(11)(12)-><0~9>(12)

143、(12)

144、

145、Z>(12)

146、.(15)

147、_(15)(13)->.(6)(14)->.(10)(15)-><0~9>(16)

148、(16)

149、(16)(16)-><0~9>(16)

150、(16)

151、(16)<母字<二>、改变后的正规文法<标识符>-><字母><十进制整数>-><数字字符><数字字符><八进制整数>->0<十六进制整数>->0x<运算符和分隔符>->+

152、-

153、*

154、/

155、>

156、<

157、

158、=

159、(

160、)

161、;<关键字>->if

162、then

163、else

164、while

165、do(0

166、1

167、2

168、3

169、4

170、5

171、6

172、7

173、8

174、9)*八进制数:0(0

175、(1

176、2

177、3

178、4

179、5

180、6

181、7)(0

182、1

183、2

184、3

185、4

186、5

187、6

188、7)*)(ε

189、.)(0

190、1

191、2

192、3

193、4

194、5

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

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

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