实现词法分析器.doc

实现词法分析器.doc

ID:49881395

大小:249.00 KB

页数:9页

时间:2020-03-03

实现词法分析器.doc_第1页
实现词法分析器.doc_第2页
实现词法分析器.doc_第3页
实现词法分析器.doc_第4页
实现词法分析器.doc_第5页
资源描述:

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

1、国家人才培养模式创新实验区、云南省教学团队.云南大学软件学院教育创新基金(编号:2009BI08)联合资助项目实现词法分析器姓名:学号:专业:任课教师:编制时间:成绩:软件工程柳青2014年4月15云南大学软件学院2012年6月制表报告内容:1、实验目标了解词法分析程序的两种设计方法:1•根据状态转换图直接编程的方式;2•利用DFA编写通用的词法分析程序。2、实现方案背景:PL/O语言是Pascal语言的子集一•种功能简单、结构清晰、可读性强、而又具备了一般高级程序设计语言的必须部分,对pl/o语言的编译程序能充分体现一个高级语

2、言编译程序实现的基本方法和技术编译的基本过程分为:词法分析、语法分析、语义分析、屮间代码生成、代码优化、冃标代码生成。另外还有出错处理和表格处理PL/O的词法分析程序是一•个独立的过程,其功能是为语法语义分析提供单词,把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析。硬件环境:MicrosoftWindowsXPprofessional2002Tnter(R)Core(TM)2DuoCPUT6670@2.20ghz1.18ghz3.0GB内存软件环境:MicrosoftvisualC++express使用语言:C

3、语言设置的三个全程变量:syn存放单词类别n存放用户所定义的值num存放用户所定义的数3、实现步骤1.根据状态转换图直接编程编写一个词法分析程序,它从左到右逐个字符的对源程序进行扫描,产生一个个的单词的二元式,形成二元式(记号)流文件输出。在此,词法分析程序作为单独的一遍,如下图所示。源程序*词法分析程序*记号文件具体任务有:(1)组织源程序的输入(2)拼出单词并查找其类别编号,形成二元式输出,得到单词流文件(3)删除注释、空格和无用符号(4)发现并定位词法错误,需要输出错误的位置在源程序中的第几行。将错误信息输出到屏幕上。(5

4、)对于普通标识符和常量,分别建立标识符表和常量表(使用线性表存储),当遇到一个标识符或常量时,查找标识符表或常量表,若存在,则返回位置,否则返回0并且填写符号表或常量表。标识符表结构:变量名,类型(整型、实型、字符型),分配的数据区地址注:词法分析阶段只填写变量名,其它部分在语法分析、语义分析、代码生成等阶段逐步填入。常量表结构:常量名,常量值1.能对任何S语言源程序进行分析在运行词法分析程序时,应该用问答形式输入要被分析的S源语言程序的文件名,然后对该程序完成词法分析任务。1.能检查并处理某些词法分析错误词法分析程序能给出的错

5、误信息包括:总的出错个数,每个错误所在的行号,错误的编号及错误信息。2.本实验要求处理以下两种错误(编号分别为1,2):1:非法字符:单词表中不存在的字符处理为非法字符,处理方式是删除该字符,给出错误信息,“某某字符非法”。4、结构算法给出各题目的详细算法描述,数据结构和函数说明,流程图。1、词法分析器的流程图开始打开源文件引始化文件指纤识别指针内容渔格•空].厅吗将字符加入fflUordJ台一厂①、一台足界符吗台.将字符加入7符数ffltordJ足-►将字符加入了符数组•<>rd」将字符加入丫符数ffllordJ识别指什内容.

6、:-指问卜一字符UliU跳过该丫符折问下一字符指向卜一字符Wlllvord为常数2、语法分析器主程序图将了符加入字符数细■ordJ/勺容为不/叩只射3、移进1.测试用例输入程序:end#floatjinlong二1989;if(jinlong~1989)i预计输出:(10,float)(10,jinlong)(25,二)(11,1989)(26,;)(2,if)(27,()(10,jinlong)(25,二)(25,二)(11,1989)(28,))(10,i)(13,+)(13,+)(6,end)6、运行结果CAsysc>d•

7、exe输入一段PL/0程序:floatjinlong=1.989;ifi++;endtt<10,float><10,jinlong><25,=〉<11,1989〉<2,if><27,0<10,jinlong><25,=><25,=><11,1989><28,>><10„i><13,+><13,♦><26,;〉<6,end〉〈id.34〉aiop.=><<一〉匕一〉宀一〉"Ise.-〉〈id.34〉

8、6><<,-><>,-><;,->.-〉<[,-〉<],-><<,->◊.-〉<;,->«,-〉<>,->Opsk.-errordi

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

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

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