基于语法分析的数学公式分析器的设计精品.docVIP

基于语法分析的数学公式分析器的设计精品.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于语法分析的数学公式分析器的设计精品

摘要 本论文研究编译原理,使用LEXYACC工具,编写数学公式分析器。 编译原理是计算机专业的一门重要专业课,通过编写数学公式分析器,加深对专业知识的理解。 本论文编写的数学公式分析器,可以进行算数运算分析,变量运算,变量名可以是字母,也可以是单词。 关键词: 词法分析; 语法分析; 产生式; Abstract abstract This paper studies the compiler principle, using LEXYACC tools to write mathematical formula analyzer. The compiler principle is an important professional course for computer majors. It helps to deepen the understanding of professional knowledge by writing mathematical formulas and analyzers. The mathematical formula analyzer written in this paper can do arithmetic analysis, variable operations, variable names can be letters, or they can be words. Key words: LEXical analysis; grammatical analysis; production type; 摘要 I Abstract I 第1章 研究背景与国内外现状 1 第2章 设计思路 1 2.1 设计依据 1 2.1.1 编译过程 1 2.1.2 词法分析 1 2.1.3 语法分析 2 2.1.4 语义分析 2 2.1.5 代码优化 3 2.1.6 项目设计方案 3 第3章 LEXYACC简介与其语法结构 4 3.1 LEX简介 4 3.2 LEX格式 4 3.3 LEX识别规则 5 3.3.1 LEX用的正规式 5 3.4 YACC简介 6 3.5 YACC源程序说明部分的写法 7 3.4 实现词法分析的思路分析 9 3.4.1 无意义字符的识别 9 3.4.2 标识符、数字、字符和字符串的识别 9 第4章 语法分析中的产生式 11 4.1 产生式简介 11 4.2 左递归的消除 11 4.3 算数运算产生式 11 ??? 14 第5章 基于语法分析的数学公式分析器的设计 15 5.1 实现简单算数运算 15 5.2 保存运算符与变量 15 5.3 支持多字符变量 15 5.4 编译运行: 15 5.5 总结 16 参考文献 18 第1章 研究背景与国内外现状 LEXYACC是20世纪70年代由贝尔实验室开发,已经成为标准的UNIX实用程序。 LEXYACC既适合编译程序,解释程序的专业编译程序编写用户。也适合非编译程序编写许多应用程序。LEXYACC使用范围包括,应用在输入中茶盅模式的应用程序,也可以应用在输入或命令语言的应用程序 LEXYACC的源程序经过LEX处理后生成的词法分析程序与YACC处理后生成的语法分析程序,可以用C语言描述,可以使用C编译器编译,与其他目标文件或命令文件连接。 目前国内外应用LEXYACC最多的方向是编写软PLC的编译器。使用LEXYACC编写的程序与用户的手动编写的词法分析语法分析程序相比较,可以大大的降低编码量提升速度和提高质量。 第2章 设计思路 2.1 设计依据 2.1.1 编译过程 编译实现的是由源程序到可执行程序之间的转换。首先源程序经编译后以机器码的形式存储在代码区中,随着程序的逐条执行,不断进行着执行指令、压栈、出栈、清栈(管理栈空间)的操作,不断在代码区、静态数据区和动态数据区跳转,完成程序的执行。 2.1.2 词法分析 计算机存储的源代码,与我们直接写出的程序是不相同的。计算机中所有的数据均已0和1的形式存储在存储单元中,源代码也一样。 我们输入源程序,对构成源程序的字符串从左到右一个字符一个字符地进行扫描和分解,依据词法规则(或构词规则)识别出一个个的单词(单词符号或符号),转换成机器容易识别的内码形式。内码用二元式(种别码,属性值)表示。我们的?输入是字符串。我们的输出序对是(种别码,属性值)。?属性值是单词的机内表示是最初级的语法分析 单词种类我们可以分为两类。一类是特殊的单词,如保留字、运算符、分界符等,这些都是源语言所提供的;另一类是普通单词,如用户在源程序中定义的标识符、常数等。 图2-1:计算机中某段程序的16进制表示 例如:程序段 i

文档评论(0)

bodkd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档