语法分析实验报告(共享)

语法分析实验报告(共享)

ID:46223330

大小:50.28 KB

页数:13页

时间:2019-11-21

语法分析实验报告(共享)_第1页
语法分析实验报告(共享)_第2页
语法分析实验报告(共享)_第3页
语法分析实验报告(共享)_第4页
语法分析实验报告(共享)_第5页
资源描述:

《语法分析实验报告(共享)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、语法分析实验报告(鲍小伟20032320)一•实验目的:通过设计、编程、二•实验内容:调试出一个具体语法分析程序,学握语法分析方法和程序设计方法。用任一语法分析方法实现对PASCAL的子集程序设计语言的分析程序。PASCAL程序设计语言的描述如下:V程序〉V程序首部〉V标识符〉*V字母〉*V字母数字串>*V数字〉*V非0数字〉*V说明部分〉:=V程序首部>V说明部分>V程序主体〉:=prograpv标识符〉;:=V字母〉IV字母>v字母数字串〉:=a

2、b

3、---

4、y

5、z:=v字母〉1V数字〉1V字母>V字母数字串〉1V数字〉V字母数字串〉:=0

6、

7、v非0数字〉:=1

8、—

9、8

10、9:=varv变量组〉:int;

11、constv常量组〉;Ivarv变量组>:int;constv常量组〉;V变量组〉V常量组>V整数>*V数字串V程序主体〉V执行语句〉V语句〉:=V标识符〉1V标识符>,v变量组〉:=V标识符〉=V整数〉1V标识符>二V整数>,v常量组〉:=V数字〉

12、v非0数字〉v数字串>=<数字>

13、<数字><数字串>:=beginv执行语旬〉end.:=V语句〉

14、V语句〉;V执行语句〉:=v赋值语句〉

15、V条件语句〉

16、V循环语句〉

17、v读语句>1V写语句>1V复合语句〉V赋值语句〉V表达式><项>V

18、因子〉V条件语句〉V关系符〉*V循环语句〉V条件〉V读语句〉V写语句〉V复合语句〉:=V标识符>:=V表达式〉:=V表达式〉+<项>1V表达式>・V项〉1<项>:=<项>*V因子〉1<项>/V因子〉1V因子〉:=(V表达式〉)1V标识符>1V整数〉:=ifv条件〉thenv语句>1ifv条件〉thenv语句〉clscv语句〉:==

19、>

20、<

21、>=

22、<=

23、<>:=whilev条件〉dov语句〉:二V表达式>v关系符><表达式>:=read(v变量组〉):=write(v表达式〉):=beginv执行语句〉end三.实验要求与原理:(1)实验要求:能

24、调用词法分析程序为其提供单词符号串,进行语法分析。输出语法分析推导或归约的过程,并具备初步的出错处理功能。写出设计报告,内容为:所选的语法分析方法原理、算法、改写的文法、分析器、一个实例分析过程等(2)实验原理:语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。语法分析器的工作本质上是按文法的产生式,识别输入串是否是一个句了。通常,语法分析从方法上可以分成两类:一类是自上而卜•分析法,另一类是白卜•而上分析法。自上而下分析法的主旨是,对任何输入串,试图用一切可能的方法,从文法开

25、始符号出发,自上而下地为输入串建立一棵语法树。这种方法木质上是一种试探过程,是反复使用不同产生式谋求匹配输入串的过程。对于一个文法满足以下三个条件,则称该文法为LL(1)文法,(1)文法不含有左递归。(2)对于文法中的每一个非终结符A的各个产生式的侯选首符集两两不相交。即,若A->QllQ2I...IQn贝ijFIRST(Qi)AFIRST(Qj)=null(ioj)(3)对文法中的每个非终结符号A,若他存在某个侯选首符集包含空串,则(4)FIRST(A)AFOLLOW(A)=null对于一个文法满足LL(1)条件时,我们就可以对其输入串进行有

26、效的无冋溯的自上而下分析程序,这个分析程序是由一组递归过程组成的,每个过程对应文法的一个非终结符号。本程序中,便是用递归下降法实现对源程序的语法分析的。首先,消除文法的左递归和回溯,如下:v标识符X字母X标识符>*'v标识符〉*'::二elv字母数字串>*v字母数字串>*::=<标识符沖v数字>*v字母数字串屮’v字母数字串::=elv字母数字串>*v说明部分〉::=constv常var<变量组>:int;v说明部分〉’v说明部分〉'::=elconstv常量组〉;v变量组>:=v标识符>*v变量组V变量组>'::=,<变量组>lcV常量组>:

27、:=v标识符〉二V整数〉V常量组v常量组>'::=el,v变量组>v数字串>*::=v数字>*v数字串>和v数字串>*,::=ek数字串〉*v执行语句>::=v语句x执行语句〉,v执行语句y::=el;<执行语句〉v表达式>::=v项x表达式v表达式〉,::=+v项x表达式>,Iy项x表达式hiev项〉::=v因了:>v项〉,v项〉’::=+v因子x项>'l/v因子>v项>,lev条件语句>::=ifv条件〉thenv语句〉v条件语句〉,v条件语句>,::=elelsev语句〉没有递归和回溯的产主式保持不变。其次,求出每个非终结符号的终结首符号

28、集FIRST,和FOLLOW集,如下HRST(V程序〉)={p}FIRST(v程序首部〉)={p}FIRST(v说明部分〉)={c,d}FIRST(v

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

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

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