编译原理试验报告

编译原理试验报告

ID:32641162

大小:226.62 KB

页数:22页

时间:2019-02-14

编译原理试验报告_第1页
编译原理试验报告_第2页
编译原理试验报告_第3页
编译原理试验报告_第4页
编译原理试验报告_第5页
资源描述:

《编译原理试验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、編铎眉理弑多业:针算机科学与兹术班侬:5班吐%:歹禺:040104051122亦导老帰:胡伦後宏咸吋向:2007年5月23^#0#-・広跆内客1.实验一内容及目的2.实验二内容及目的二.空跆垂束1.词法分析程序待分析的简单语言的词法(2)各种单词对应的种别码(3)词法分析程序的功能2•语法分析程序(1)待分析的简单语言(2)实验要求说明三.終序中用到的全終盘蚤殳所存幺传1.实验一中全程变量及说明2.实验二中全程变量及说明④.終序席单1.程序流程图2.程序源代码N・偏铎終序中能识别出的緒谡橹&六.向題编写程序中遇到的问题及解决方法E.9移体舍一.实验内

2、容:实验一:设计,编制并调试一个词法分析程序,加深对词法分析程序勰的JIM。实验二语法分析程序:编制一个递归下降语法分析程序,实现对词法分析窗所捋共的单词序列的语法检查和纟网析。二.实验要求:实验一:词法分析程序实验要求1.待分析的简单语言的词法:(1)关键字:beginifthenwhiledoend(2)运算符::=+・*/vv=<>>>=二;()#(3)其他单词是标识符(ID)和整型常数(NUM),通过以下正规式定义:ID=letter(letter

3、digit):i:NUM=digitdigit*(1)空格由空白,制表符和换行符组成。空格一般

4、用来分隔ID,NUM,运算符,界符和关键字,词法分析阶段通常被忽略。1.各种单词符号对应的种别码:单词符单词符号种别码号种别码begin1:17if2:二18then3<20whi.le4<>21do5〈二22end6>23lette(lettedigit)*10>二24digitdigit*11二25+13;26—14(27*15)28/16#03•词法分析程序的功能:输入:所给文法的源程序字符串。输出:二元组(syn,token,或sum)构成的序列。其中:syn为单词种别码;Token为存放的单词自身字符串;Sum为整型常数。实验二:语法分析程

5、序实验要求1.彳粉析的简单语言:用的BNF^^如下:1、〈程宇〉::二begin<串〉end2、〈语句串〉“N语句>{;〈语句>}wh订e3、〈语句〉::二〈赋值语句>

6、if<W>then〈赋值语句〉〈条件〉do〈赋值语句〉4、〈条件〉::二〈表达式>〈关系符>〈表达式子〉5、〈贝武值语句〉“二ID:二〈表达式子〉6、〈表达式子右二〈项>{+〈项>

7、-〈项>}7、〈项〉::=〈因子>{*〈因子>

8、/〈因子>}8、〈因子〉::=ID

9、NUM

10、(〈表达式>)2.实验要求说明:输入单词串,以“#”结束,如I果是文法正确的句子,贝輸出成功信息,打印“succ

11、ess”,否贝!J输出“error”。例如:输入:beginx:=9;ifx>0thenx:二(x+l)*6;whilea二0dob:二2*x/3end#输出:success输入:end#输出:error一.程序中所用到的全程变量以及所存放的信息:实验一中全程变量及所存信息:charprog[80];/*存放输入的语句*/chartoken[8];/*存放字符串*/charch;/*存放单词的缓冲区*/intsyn;/*单词种别码*/intp;/*缓冲区prog的指针*/intm;/*token的指针*/intn;/*关键字表序号*/intsum;/

12、*存放种别码*/实验二中全局变量及所存信息:charprog[80];/*存放输入的语句*/chartoken[8];/*存放字符串*/charch;/*存放单词的缓冲区*/intsyn;/*单词种别码*/intp;/*缓冲区prog的指针*/intm;/*token的指针*/intn;/*关键字表序号*/intsum;/*存放种别码*/intkk;/*kk=0表示无语法错误,kk=l表示有语法错误*/charSvtab[6]二{”begiF,”if;“then”,“while”,”d(y;”end”};/*关键字表*/一.程序清单:1.程序流程图:

13、实验一:词法分析流程图(1)词法分析主程序示意图:J结束•(2)词法分析程序流程图:实验二:语法分析流程图语法分析主程序示意图:置初值调用scaner读下一个单词符号调用lrparser:结束(2)递归下降分析示意图:(3)语句串分析过程示意图:(4)statement语句分析函数示意图:否出错处理kk=l(6)term()函数分析示意图:(7)factor0函数分析臆图:2.源程序:实验一源程序:/*ifa>=9;x:=(2+3)*10for$:*/include”stdio.h”/*定义I/O库所用的某些宏和变量旬include”string.h

14、”/*定义字符串库函数*/charprog[80],token[8];charch;intsyn,p,m,n

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

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

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