《编译原理》实验指导书-2015.doc

《编译原理》实验指导书-2015.doc

ID:50295703

大小:52.50 KB

页数:25页

时间:2020-03-07

《编译原理》实验指导书-2015.doc_第1页
《编译原理》实验指导书-2015.doc_第2页
《编译原理》实验指导书-2015.doc_第3页
《编译原理》实验指导书-2015.doc_第4页
《编译原理》实验指导书-2015.doc_第5页
资源描述:

《《编译原理》实验指导书-2015.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、武汉科技大学计算机科学与技术学院编译原理实验指导书实验一词法分析器设计【实验目的】1.熟悉词法分析的基本原理,词法分析的过程以及词法分析中要注意的问题。2.复习高级语言,进一步加强用高级语言来解决实际问题的能力。3.通过完成词法分析程序,了解词法分析的过程。【实验内容】用C语言编写一个PL/0词法分析器,为语法语义分析提供单词,使之能把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析,并把分析结果(基本字,运算符,标识符,常数以及界符)输出。【实验要求】1.要求绘出词法分析过程的流程图。2.根据词法分析的目的以及

2、内容,确定完成分析过程所需模块。3.写出每个模块的源代码,并给出注释。4.整理程序清单及所得结果。【说明】运行成功以后,检查程序,并将运行结果截图打印粘贴到实验报告上。辅助库函数scanerLib设计以及使用说明:下面内容给出了一个辅助库函数的接口说明以及具体实现。接口设计Ø//字符类classToken{TokenTypetype;Stringstr;Intline;}//词法分析结果输出操作类classTokenWriter{ArrayListtokens;//用来记录所识别出来的tokenTokenWriter();//

3、构造函数指定输入文件名,创建文件输出流VoidAdd(Token);//将词法分析器中分析得到的Token添加到tokens中WriteXML();//将tokens写出到目标文件.xml中}//词法分析操作词法分析生成文件接口<暂时不需要对该类的操作;下一步做语法分析的时候使用>classTokenReader{ArrayListtokens;TokenReader();//构造函数输入文件名;初始化TokenNext();//返回下一个Token;   TokenBack();//回退一个Token,并返回回退后的当前To

4、kenReadXML();//从文件中读出所有Token到tokens}使用:TokenWritertw=newTokenWriter();While(){Tokentok=getToken();Tw.Add(tok);}tw.WriteXML();TokenReadertr=newTokenReader();Tok,ReadXML();Tokentok=newToken();While(){Tok=tr.Next();Process(tok);}类图:TokenWriter-tokens:ArrayList-scanfile

5、:string+TokenWriter(string)+Add(Token):void+WriteXML():voidTokenReader-tokens:ArrayList-scanfile:string-pos:int+TokenWriter(string)+Next():Token+Back():Token+WriteXML():void操作类库源码ØToken.cs//字符类ReservedWord.cs//保留字类TokenWriter.cs//结果输出TokenReader.cs//操作词法分析生成文件,进行下一步

6、的工作使用时注意事项:1)定义文法中涉及到的所有字符类型,修改Token.cs文件中publicenumTokenType{//自己定义的所有字符类型};2)对于保留字,在词法分析的过程中进行定义,例如:HashtablereservedWords=newHashtable();reservedWords.Add("if",TokenType.IF);reservedWords.Add("else",TokenType.ELSE);reservedWords.Add("while",TokenType.WHILE);reser

7、vedWords.Add("return",TokenType.RETURN);reservedWords.Add("void",TokenType.VOID);reservedWords.Add("int",TokenType.INT);可以继续添加其它的保留字;也可以将保留字表定义为其它的类型结构进行存储。3)进行词法分析,词法分析的过程中,可以使用Token、ReservedWord的类型定义以及TokenWriter类中给出的接口函数进行操作。4)同时还给出了一个较复杂的语言文法的词法分析程序scanner.cs。示例

8、程序举例:设置输入:prime.cm输出:prime.xml实验二LL(1)语法分析程序设计【实验目的】1.熟悉判断LL(1)文法的方法及对某一输入串的分析过程。2.学会构造表达式文法的预测分析表。【实验内容】编写一个语法分析程序,对于给定的输入串,能够判断识别该串是否为给定

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

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

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