实验1:词法分析程序.doc

实验1:词法分析程序.doc

ID:49881534

大小:454.50 KB

页数:18页

时间:2020-03-03

实验1:词法分析程序.doc_第1页
实验1:词法分析程序.doc_第2页
实验1:词法分析程序.doc_第3页
实验1:词法分析程序.doc_第4页
实验1:词法分析程序.doc_第5页
资源描述:

《实验1:词法分析程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、偏译虑理华中农业大学理学院计算机系实验一词法分析程序一、实验目的:构造C-Minus语言的词法分析程序,程序要求能对输入的字符串流进行词法分析。在实验的过程中,学会应用单词分析的方法一一NFA(非确定有穷自动机)和DFA(确定有穷自动机)。二、实验内容:编写为任一正则文法(见实验参考(一)C-Minus惯用的词法)构造非确定有穷自动机NFA并转换成确定有穷自动机DFA,并对任给的一个输入串(见实验参考(二)测试用输入串)进行词法分析的程序,程序的输出为单词的序列(见实验参考(三)程序输出形式)。三、实验参考:(一)C-Minus惯用的词法1.下面是语言的关键字:e

2、lseifintreturnvoidwhile所有的关键字都是保留字,并且必须是小写。2.下而是专用符号:+・*/<<=>>===!==;,()[]{}/*勺及各种复合赋值运算符。3.其他标记是ID和NUM,通过下列正则表达式定义:ID=letterletter*NUM=digitdigit*letter=aI..IzIAI..IZdigit=0I..I9小写和大写字母是有区别的。思考:构造实数的正规表达式,力争实现对实数的识别及表示。4.空格由空白、换行符和制表符组成。1.注霽用通常的C语言符号/*••」/围起來。注释可以放在任何空白出现的位置(即注释不能放在标

3、记内)上,且可以超过一行。注释不能嵌套。(%1)测试用输入串测试用输入串为输入两个整数,计算并输出它们的最大公因子的程序。intmax_factor(intp9intq){if(q==0)returnp;elsereturnmax_factor(q,p-p/q*q);/*p-p/q*q==pmodq*/}voidmain(void){intx;inty;x=input();y=input();output(max_factor(x,y))}(%1)程序输出形式1.单词的分类可将所有标识符归为一类;将常数归为另一类;保留字和分隔符则可采取一词一类。2.符号表的建立可

4、事先建立一保留字表,以备在识别保留字时进行查询。变量名表及常数表则在词法分析过程中建立。3.程序的输出形式为单词串的输出形式。所输岀的每一单词,均按形如(CLASS,VALUE)的二元式编码。对于变量标识符和常数,CLASS字段为相应的类别码,VALUE字段则是该标识符、常数在具符号表中登记项的序号。构造C-Minus语言的词法分析程序,耍求识别岀变量类型并记录相关信息。五、实验说明:1•时间安排:第4章“词法分析”后。2.实验环境:WINDOWS下,工具为TurboC2.0或VisualC6.()六、实验考核方式:1.提交实验报告2.演示程序和答辩(抽查)实验二

5、递归下降语法分析一、实验目的构造文法的语法分析程序,耍求采用递归下降语法分析方法对输入的字符串进行语法分析,进一步掌握递归下降的语法分析方法。二、实验内容编写为一上下文无关文法构造其递归下降语法分析程序,并对任给的一个输入串进行语法分析检查。程序要求能对输入串进行递归下降语法分析,能判别程序是否符合已知的语法规则,如果不符合(编译出错),则输岀错误信息。三、实验参考:算法思想为每个非终结符设计一个识別的子程序,寻找该非终结符也就是调用相应的子程序。由于单词在语法分析中作为一个整体,故在语法识别屮仅使用其内码。在这里将词法分析作为语法分析的一个子程序,当语法分析需要

6、单词时,就调用相应的词法分析程序获得一个单词。语法分析的作用是识别输入符号串是否是文法上定义的句子,即判断输入符号串是否是满足“程序”定义的要求。也就是当语法识别程序从正常退出表示输入符号串是正确的“程序S若从出错退岀,则输入符号串不是正确的“程序”。出错时,可以根据读字符的位置判断出错的位置。构造C-Minus语言的词法分析程序,耍求识别岀变量类型并记录相关信息。五、实验说明:1•时间安排:第4章“词法分析”后。2.实验环境:WINDOWS下,工具为TurboC2.0或VisualC6.()六、实验考核方式:1.提交实验报告2.演示程序和答辩(抽查)实验二递归下

7、降语法分析一、实验目的构造文法的语法分析程序,耍求采用递归下降语法分析方法对输入的字符串进行语法分析,进一步掌握递归下降的语法分析方法。二、实验内容编写为一上下文无关文法构造其递归下降语法分析程序,并对任给的一个输入串进行语法分析检查。程序要求能对输入串进行递归下降语法分析,能判别程序是否符合已知的语法规则,如果不符合(编译出错),则输岀错误信息。三、实验参考:算法思想为每个非终结符设计一个识別的子程序,寻找该非终结符也就是调用相应的子程序。由于单词在语法分析中作为一个整体,故在语法识别屮仅使用其内码。在这里将词法分析作为语法分析的一个子程序,当语法分析需要单词时

8、,就调用相

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

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

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