《编译原理》实验使用说明目录-GitHub.PDFVIP

《编译原理》实验使用说明目录-GitHub.PDF

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

《编译原理》实验使用说明 计算机师范 陈晨 项目地址:/bajdcc/jMiniLang 参考博客:/vczh/ 项目编码:UTF-8 获取途径:git clone /bajdcc/jMiniLang.git 联系方式:mailto:bajdcc@ 目录 底层模块 2 正则表达式2 词法分析工具2 LL1 文法 3 算符优先文法 3 基于LALR1 的简易解释器 3 语法分析3 语义分析4 生成语法树4 指令集5 生成代码5 构建虚拟机5 语法5 类型系统7 文档7 扩展7 1 底层模块 正则表达式 该工具实现了以下功能:  解析正则表达式  字符区间合并  生成表达式树  生成NFA  NFA 消除Epsilon 边  NFA 确定化转DFA  DFA 最小化(部分优化)  生成状态转移矩阵 从而完成字符串的匹配工作。 类:util.lexer.regex.Regex 正则表达式分析样例:util.lexer.test.TestRegex.java DEBUG 输出内容:该工具实现过程中的大部分步骤带有输出。 参考与拓展阅读:/vczh/archive/2008/05/22/50763.html 词法分析工具 该工具可以识别:  空白字符  注释  宏  字符串  字符  标识符  关键字  操作符  整数  实数 从而完成单词的匹配工作。 类:util.lexer.Lexer 词法分析样例:util.lexer.test.TestLexer.java DEBUG 输出内容:该工具实现过程中的大部分步骤带有输出。 参考与拓展阅读:/vczh/archive/2008/05/22/50763.html 2 LL1 文法 输入参数:  文法要匹配的目标字符串  终结符声明和定义  非终结符声明和定义  设置Epsilon 名称  产生式  初始符号 产生式格式:  单词(即C 语言中变量名命名)表示非终结符  @开头的单词为终结符  @Epsilon 名称表示Epsilon  “|”表示产生式并列 类:LL1.grammar.Grammar LL1 分析样例:LL1.grammar.test.TestGrammar.java 算符优先文法 输入参数和产生式格式同LL1 文法。 添加了归约处理方案,即语义动作。 当从栈中找到最左素短语A ,应立即归约,此时,A 中包括终结符T 和非终结符U。 设定模式:以1 代表T ,代0 代表U。 例:对括号进行归约,形如(exp),则两边的括号属于T ,当中的exp 属于U,该模式为101。 “模式”是判定当前最左素短语采用哪个语义动作进行归约的依据。 类:OP.grammar.Grammar OP 分析样例:OP.grammar.test.TestGrammar.java 基于LALR1 的简易解释器 语法分析 输入参数:  定义终结符  定义非终结符  定义语义错误处理动作  定义归约动作(语义动作)  定义终结符匹配动作(终结符通过) 初始化: 3  分析产生式  生成语义动作指令 产生式格式:  禁止产生式产生空串  单词(即C 语言中变量名命名)表示非终结符  @开头的单词为终结符  非终结符或终结符后跟“[”+数字+ “] ”为归约时的数据索引(归约需要取数据)  非终结符或终结符后跟“{ ”+数字+ “}”为定义语义错误处理器(这条路走不通就报错)  非终结符或终结符后跟“# ”+数

文档评论(0)

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

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

1亿VIP精品文档

相关文档