下载此文档

算术表达式的语法及语义分析程序设计.doc


文档分类:IT计算机 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
。、编制、调试一个算术表达式的语法及语义分析程序,加深对语法语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。(1)利用递归下降分析方法和思想对某些语句进行语法分析与语义分析,生成相应的中间代码。(2)学会正确运用语法规则,并能应用所学的方法解决存在的问题,给出语法分析方法及中间代码形式的描述、文法和属性文法的设计。2设计环境与工具本课程设计程序采用VC++开发,其可执行文件能在Window界面上运行良好。。,应用四元式。:〈无符号整数〉∷=〈数字〉{〈数字〉}〈标识符〉∷=〈字母〉{〈字母〉|〈数字〉}〈表达式〉∷=[+|-]〈项〉{〈加法运算符〉〈项〉}〈项〉∷=〈因子〉{〈乘法运算符〉〈因子〉}〈因子〉∷=〈标识符〉|〈无符号整数〉|‘(’〈表达式〉‘)’〈加法运算符〉∷=+|-〈乘法运算符〉∷=*|/。(其中关于无符号整数和标识符,由于可以在词法分析的过程中给以确定,所以就不必抽象其表达式。)设:indentifer:标识符digit:无符号整数E:表达式T:项F:因子则一个简单的术表达式的文法G1中包含以下产生式:E->E+E|E-E|E*E|E/E|(E)|indentifer|digit为了明确运算符的优先权(括号的优先权高于乘除法,乘除法的优先权高于加减法),可改写文法G1如下:改写后的文法G2:E->E+T|E-T|TT->T*F|T/F|FF->(E)|indentifer|digit为了避免左递归的发生,可进一步将文法改成:文法G[E]:(1)E->[+|-]TG(2)G->+TG|—TG(3)G->ε(4)T->FS(5)S->*FS|/FS(6)S->ε(7)F->(E)(8)F->indentifer|、语法、语义,故在程序设计的时候也按照这种方式,把整个程序分成三个大的部分,即词法分析部分,语法分析部分和语义分析部分。而且在各个部分的内部采用模块化设计,再分成各个小块,各自完成其相对应的功能。5源程序清单voidyuyi_main()//语义分析主函数{cifa_p=cifa_head;yuyi_head=newyuyi;yuyi_head->next=NULL;yuyi_end=yuyi_head;cout<<endl;yufa_zfc_disp(cifa_head->next);cout<<"语义分析产生的四元式如下:"<<endl;cout<<endl<<"-----------------------------------------------------"<<endl;advance();E1();yuyi_sys_disp();cout<<endl<<"----------------语义分析结束--------------------"<<endl;}//*********************************主函数************************************voidmain()//主函数{intlen;intf=1;cout<<endl<<"请输入一个算术表达式(请在一行内完成输入且每个项的长度不大于10):"<<endl;gets(str);len=strlen(str);str[len]='^';cout<<endl;system("pause");cout<<endl;cout<<"***********************词法分析开始*****************"<<endl;f=cifa_main();if(f==0)return;cout<<endl;system("pause");cout<<endl;cout<<"***********************语法分析开始*****************"<<endl;f=yufa_main();if(f==0)return;cout<<endl;system("pause");cout<<endl;cout<<"********************语义分析开始*********************"<<endl;yuyi_main();cout<<endl;system("pause");cout<<endl;}intF1()//F->(E)|标识符

算术表达式的语法及语义分析程序设计 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人q1188830
  • 文件大小62 KB
  • 时间2020-01-12