编译原理课程设计--词法自动机

编译原理课程设计--词法自动机

ID:35627182

大小:49.50 KB

页数:13页

时间:2019-04-03

编译原理课程设计--词法自动机_第1页
编译原理课程设计--词法自动机_第2页
编译原理课程设计--词法自动机_第3页
编译原理课程设计--词法自动机_第4页
编译原理课程设计--词法自动机_第5页
资源描述:

《编译原理课程设计--词法自动机》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、编译原理课程设计一、使用词法分析,语法分析将布尔表达式转换为逆波兰式二、LL(1)语法分析程序设计要求(1)对输入文法,它能判断是否为LL(1)文法,若是,则转(2);否则报错并终止;(2)输入已知文法,由程序自动生成它的LL(1)分析表;(3)对于给定的输入串,应能判断识别该串是否为给定文法的句型。三、设计题目:词法自动机设计要求:用C语言或其它高级语言对PASCAL子集编制一个一遍扫描的小型编译程序对词法分析,完成识别语言单词的任务。对语法分析,若输入串是文法的句子,则输出语法分析成功,否则,给出错误的行号,错误的性质。语法描述:文法:<程序>→begin

2、<语句串>end<语句串>→<语句>{;<语句>}<语句>→<赋值语句>

3、<条件语句>

4、<循环语句><赋值语句>→<变量>:=<表达式><条件语句>→if<条件>then<语句><循环语句>→while<条件>do<语句><条件>→<表达式><关系符><表达式><表达式>→<项>{+<项>

5、—<项>}<项>→<因子>{*<因子>

6、/<因子>}<因子>→<变量>

7、<无符号整数>

8、(<表达式>)<无符号整数>→<数字>{<数字>}<变量>→<标识符><标识符>→<字母>{<字母>

9、<数字>}<关系符>→<

10、<=

11、>

12、>=

13、=

14、<><字母>→a

15、b

16、c

17、...

18、x

19、

20、y

21、z<数字>→0

22、1

23、2

24、...

25、9<界符>→,

26、;

27、(

28、)

29、......四、设计题目:有限自动机的运行设计目的:1、         理解有限自动机的作用2、         利用转态图和状态表表示有限自动机编译原理课程设计一、使用词法分析,语法分析将布尔表达式转换为逆波兰式二、LL(1)语法分析程序设计要求(1)对输入文法,它能判断是否为LL(1)文法,若是,则转(2);否则报错并终止;(2)输入已知文法,由程序自动生成它的LL(1)分析表;(3)对于给定的输入串,应能判断识别该串是否为给定文法的句型。三、设计题目:词法自动机设计要求:用C语言或其它高级

30、语言对PASCAL子集编制一个一遍扫描的小型编译程序对词法分析,完成识别语言单词的任务。对语法分析,若输入串是文法的句子,则输出语法分析成功,否则,给出错误的行号,错误的性质。语法描述:文法:<程序>→begin<语句串>end<语句串>→<语句>{;<语句>}<语句>→<赋值语句>

31、<条件语句>

32、<循环语句><赋值语句>→<变量>:=<表达式><条件语句>→if<条件>then<语句><循环语句>→while<条件>do<语句><条件>→<表达式><关系符><表达式><表达式>→<项>{+<项>

33、—<项>}<项>→<因子>{*<因子>

34、/<因子>}<因子>→

35、<变量>

36、<无符号整数>

37、(<表达式>)<无符号整数>→<数字>{<数字>}<变量>→<标识符><标识符>→<字母>{<字母>

38、<数字>}<关系符>→<

39、<=

40、>

41、>=

42、=

43、<><字母>→a

44、b

45、c

46、...

47、x

48、y

49、z<数字>→0

50、1

51、2

52、...

53、9<界符>→,

54、;

55、(

56、)

57、......四、设计题目:有限自动机的运行设计目的:1、         理解有限自动机的作用2、         利用转态图和状态表表示有限自动机3、         以程序实现有限自动机的运行过程设计内容:(注:题目详细要求)利用状态表和有限自动机的运行原理编制程序,使得程序能够识别一

58、个输入串是否为一个有效的符号串,具体可以选择下面之一:无符号定点实数、自然数、整数、十六进制数或其它自己定义的符号串。设计思想:本程序实现对无符号定点实数的判断,正确接受,否则不接受。本程序的关键在状态表和缓冲区的运用。首先定义了一个布尔型函数ReadALine把输入的字符串送到缓冲区中;然后定义了布尔型函数Run 和Getchar实现对输入字符串的正确性判断,更改Run函数可以改变程序功能:如可将状态表改变成识别“偶数”的有限自动机的状态表。附录:(完整代码)有限自动机#include #include //状态表相关存

59、储信息:#define STATE_NUMBER 4    //状态数目#define CHAR_NUMBER 2    //输入字符的种类: d 和 .#define DIGIT 0    //输入数字在状态表中位于第0列//State[][]为状态表,以整数组形式存放,0,1,2,3表示状态,-1表示没有此状态int State[STATE_NUMBER][CHAR_NUMBER]=    {{1,-1},{1,2}, {3,-1}, {3,-1}};int Q[STATE_NUMBER] = {0,1,0,1};    //终态标志:0非终态,1终态。/

60、/缓冲区://输入缓冲区:由专门函数操

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

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

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