- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
读万卷书 行万里路 PAGE 目录 TOC \o 1-3 \u 一.设计题目 PAGEREF _Toc248245318 \h 2 二.设计要求 2 1. 词法分析器的定义 2 2. 设计要求 2 3. 本程序自行规定: 3 三.设计作用与目的 PAGEREF _Toc248245323 \h 4 1. 设计作用 PAGEREF _Toc248245324 \h 4 2. 设计目的 4 四.运行环境及工具软件 4 五.系统设计 PAGEREF _Toc248245327 \h 5 1. 系统总体设计 PAGEREF _Toc248245328 \h 5 (1)词法分析器的设计 PAGEREF _Toc248245329 \h 5 (2)总体设计框图 PAGEREF _Toc248245330 \h 6 (3) 总程序流程图 6 2. 各子模块设计 8 (1) 字符的识别 8 (2)关键字的识别 8 (3) 数字的识别 8 (4)界符的识别 PAGEREF _Toc248245336 \h 10 (5) 运算处理 PAGEREF _Toc248245337 \h 10 3.相关函数分析 PAGEREF _Toc248245338 \h 11 4. 源程序设计 PAGEREF _Toc248245339 \h 12 六.实验调试结果 PAGEREF _Toc248245340 \h 29 1. 调试工具 PAGEREF _Toc248245341 \h 29 2. 调试步骤 PAGEREF _Toc248245342 \h 29 3. 调试结果 PAGEREF _Toc248245343 \h 29 七.设计中的问题及解决方法 PAGEREF _Toc248245344 \h 31 八.设计心得 PAGEREF _Toc248245345 \h 32 九.参考文献 PAGEREF _Toc248245346 \h 34 词法分析器的设计与实现 一.设计题目 词法分析器的设计与实现 二.设计要求 1. 词法分析器的定义 词法分析顾名思义就是分词。它以程序设计语言编制的源程序作为输入,以单词序列作为输出。分词过程可以通过编制程序自动完成,我们通常称这个分词程序为词法分析器。词法分析器分析的源程序可以是现有的各类程序设计语言源程序也可以是人为给定的模型语言的源程序。本文中的源程序为后者。从词的角度来看,它涉及的内容较为简单,只包括几个较为常用的词类,词类的构成上也适当的作了一些简化。对词进行分析时,我们是按类型进行分析的 。不同类型的词在后续的分析中所起的作用不同,相应的操作也各有不同,但同种类型中的 词虽然单词的构成不同但从宏观上看它们的操作大体一致。模型语言中的单词可以分为“关 键字”、“标识符”、“常数”、“分隔符”、“运算符”几类。一般,关键字在程序设计语言中人为给定 2. 设计要求 对给定的程序通过词法分析器能够识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示。而本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示。另外,如果是算术表达式,则需要通过栈、运算符的优先级比较处理等从而计算出最终结果并显示。通过此次课程设计要求掌握从源程序文件中读取有效字符的方法,掌握词法分析的实现方法并上机调试编出的词法分析程序。 在处理表达式前,首先设置两个栈:一是运算符栈,用于在表达式处理过程中存放运算符。在开始时,运算符栈中先压入一个表达式结束符“#”。二是操作数栈,用于在表达式处理过程中存放操作数。然后从左到右依次读出表达式中的各个符号(运算符或操作数),每读出一个符号按以下原则进行处理: 若读出的是操作数,则将该操作数压入操作数栈,并依次读入下一个符号。 若读出的是运算符,则作进一步判断。 ①若读出运算符的优先级大于运算符栈顶运算符的优先级,则将读出的运算符压入运算符栈,并依次读下一个符号。 ②若读出的是表达式结束符“#”,且运算符栈栈顶的运算符也是表达式结束符“#”,则表达式处理结束,最后的计算结果在操作数栈的栈顶位置。 ③若读出运算符的优先级不大于运算符栈栈顶运算任的优先级,则从操作数栈连续退出两个操作数,并从运算符栈退出一个运算符,然后作相应的运算(运算符为刚从运算符栈退出的运算符,运算对象为刚从操作数栈退出的两个操作数),并将运算结果压入操作栈。 3. 本程序自行规定: ⑴ 关键字:auto,break,case,char,const,continue, ? default,do,double,else,enum,extern, float,for,goto,if,int,long,ret
您可能关注的文档
最近下载
- 神经外科常用药物.ppt VIP
- 必威体育精装版美的集团人才培养与人才梯队建设方案.docx VIP
- AVEVA Marine 船舶生产设计培训中文材料 (套料).pdf VIP
- 汇川(INOVANCE)ME320L变频器说明书.pdf
- 迈向净零碳排之路—2030光储能源转型白皮书-InfoLink.pdf VIP
- 【区级联考】北京市西城区2018-2019学年七年级上学期期末考试数学试题【含答案】.docx VIP
- 护理给药制度ppt.pptx
- 在线网课学习课堂《人机工程学(西南交通大学)》单元测试考核答案.docx VIP
- 2023年10月自考04183概率论与数理统计(经管)试题及答案含评分标准.docx VIP
- 公考行测送分口诀包.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)