首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到10条相似文献,搜索用时 46 毫秒
1.
讨论了LR(1)语法分析器的自动构造,可判定给定的文法是否为LR(1)文法.若是,则自动生成给定文法的LR(1)分析表,并对任一输入串进行分析,判断其是否为给定文法的句子.论文相关的软件除可用于编译原理课程教学演示外,还可用于实际编译程序的LR语法分析器的自动构造.  相似文献   

2.
针对LR(1)语法分析方法的分析能力较强,但其语法分析器的状态数太多,很难被应用的问题,提出了改进的LR(1)语法分析方法--RDLR(1)(Recursive Descent LR(1)语法分析方法,同时给出了将LR(1)文法等价变换成RDLR(1)文法的一般方法.结果表明,该文法对语言的识别能力与LR(1)文法相同,比LALR(1)文法强;但其语法分析器的状态数却比LR(1)语法分析器的少,与LALR(1)语法分析器的状态数相当.  相似文献   

3.
编译器前端构造工具及JLUCC的实现   总被引:2,自引:0,他引:2  
针对多种典型的编译器构造工具存在对文法有限制、嵌入式语义动作有负面影响,目标语言单一和调试维护困难等一些问题,设计并实现了一种新的编译器构造工具--JLUCC(Jilin University Compiler Compil-er).JLUCC使用Earley分析方法,结合反射、面向对象和设计模式等技术,具有词法分析器、语法分析器、抽象语法树和遍历工具等编译器模块的自动生成功能,可以支持任意上下文无关文法、多遍处理和对目标语言的扩展.其功能强大、使用方便、便于维护和扩展,具有广阔的应用前景.展望了未来编译器构造工具的发展趋势.  相似文献   

4.
基于LL(1)的LL(2)分析方法   总被引:2,自引:0,他引:2  
基于LL(1)的LL(2)分析方法,可以在很大程度上简化LL(2)分析器的构造和提高分析效率。其实质是当一个文法不是LL(1)文法时,只对不满足LL(1)条件的产生式部分用LL(2)分析处理,以简化分析表的构造和提高分析效率(称它为LL(1,2)分析器)。基于这种方法已实现了一个以语法图或巴科斯瑙尔范式描述的语法为输入,自动生成LL(1,2)语法分析器的编译器构造工具。若在语法图或语法规则的适当位置插入语义信息则与YACC(一个编译器的编译器)的功能类似,能构造出完整的编译器,该编译器构造工具经实用效果很好。文中提出的方法与讨论也适于推广到LL(k),k>2的情况。  相似文献   

5.
本文提出了一个上下文无关文法的LR(k)分析机的分级构造算法及其文法的分划方法。并对K=1的情况进行了详细的讨论。该方法不仅适用于任何实际LR(K)文法并且较之[5]中方法更加有效。文中对算法的正确性进行了证明,同时指出由本文建立的强相容性标准是所有合并同心状态的相容性标准中最宽的一个。根据获得的结果。用本文中算法构造的LR(K)分析机中的状态个数与LALR(K)分析机中的状态个数相同或略多。  相似文献   

6.
作者认为二级文法的实用性质关键取决于两个基本问题。第一个基本问题是转调条件。本文首次提出部分转调条件和部分转调的概念,克服了原转调条件和完全转调的局限性。在此基础上,进一步讨论了LR文法、部分转调与子文法类之间的关系。第二个基本问题是入口状态前看集。本文证明了入口状态前看集不会缩小二级文法的文法属性。这篇文章中所讨论的内容是二级文法研究中所取得的重要进展。在M—68000微型机上已有效地实现了二级语法分析器自动生成系统6,进而有力地论证了这一研究结果的实用价值。  相似文献   

7.
编译原理是计算机学科的核心课程,实验教学对学生学习该课程具有相当重要的作用。LR(0)分析表是LR(0)分析器的主要组成部分之一,是建立其他LR分析的基础。本文首先对LR(0)的理论基础进行阐述,然后,着重讨论LR(0)项目集族和LR(0)分析表的构造方法,最后,对实现构造LR(0)分析表的C++语言程序进行分析。  相似文献   

8.
LL(1)分析方法是一种确定的自顶向下分析方法,在语法分析中,可用来分析给定的句子是否能被特定文法所能识别.  相似文献   

9.
在扩展巴克斯范式(EBNF)Earley分析的基础上, 提出一个语义分析器的自动生成算法, 给出了一个带有语义动作的扩展文法和一个输入, 即可生成其语义分析器. 通过执行语义动作, 就可以进行类型检查、 中间代码生成及优化等相关工作, 使得该算法成为完整的扩展文法分析技术, 并在实际运用中成为可能.  相似文献   

10.
一般上下文无关文法的一个分析算法   总被引:1,自引:0,他引:1  
本文给出一般上下文无关文法的一个分析算法。该算法可以看成是LR分析算法的推广,它既是自底向上,又是从左到右。理论分析表明本算法对一般文法具有时间界O(n~3)这里n是输入句子的长度);对有界歧义文法时间界为O(n~2),而对LR文法时间界为O(n)。由于本算法是先将文法转换成分析表,然后用分析表来指导对句子的分析。因而在实际应用中本算法一般要比Earley算法快,另外本算法输出中包含输入句子的所有可能的分析,并且仅需一简单枚举就可从此输出中找出句子的一个分析。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号