首页 > 其他分享 >编译原理LR分析

编译原理LR分析

时间:2022-12-14 10:58:29浏览次数:44  
标签:符号 移进 编译 归约 LR 原理 FOLLOW 输入

image

image

LR(0)分析存在问题及解决办法

当LR(0)含有互相冲突的项目时,则需要向前展

望符号串,检查下一个输入符号的状态

例 项目集I={X→α· bβ,A→α·,B→α· }

当面临输入符号b时,应该选择移进b,还是归约

到A,或归约到B?

解决办法 当状态I,面临输入符号是a时

(1) 若a=b,则移进b

(2) 若a∈FOLLOW(A),则用产生式A→α进行归约

(3) 若a∈FOLLOW(B),则用产生式B→α进行归约

(4) 此外,报错

SLR(1)解决冲突的方法:

假定LR(0)规范族的一个项目集I中

含有m个移进项目

A1→α·a1β1,A2→α·a2β2,…,Am→α·amβm

同时含有n个归约项目

B1→α· ,B2→α· ,…, Bn→α·

如果下列集合两两不相交

{a1,a2,…,am},FOLLOW(B1),FOLLOW(B2),…,FOLLOW(Bn)

当状态I面临输入符号a时,按以下规则移进归约

若a=ai,i=1,2,…,m, 则移进

若a∈FOLLOW(Bi),i=1,2,…,n,则用Bi→α归约

此外,报错

标签:符号,移进,编译,归约,LR,原理,FOLLOW,输入
From: https://www.cnblogs.com/N-lim/p/16981466.html

相关文章

  • Raw NAND FLASH原理及ONFI接口标准【转】
    转自:https://blog.csdn.net/ScilogyHunter/article/details/105995767一、NANDFlash类型1.1NANDFlash的两大分类NANDFlash是嵌入式世界里常见的存储器,对于嵌入式开发......
  • 【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基
    SpringCloudAlibabaNacosDiscoverySpringBoot应用程序在服务注册与发现方面提供和Nacos的无缝集成。通过一些简单的注解,您可以快速来注册一个服务,并使用经过双十......
  • 编译原理导论
    1.1什么是编译程序编译程序的必要性:计算机只能识别机器语言,但是编程语言有很多编译程序概念:最初定义:高级语言——>汇编语言或机器语言程序设计语言源程序的两种......
  • 写过vue自定义指令吗,原理是什么?.m
    背景看了一些自定义指令的文章,但是探究其原理的文章却不多见,所以我决定水一篇。如何自定义指令?其实关于这个问题官方文档上已经有了很好的示例的,我们先来温故一下。除......
  • 编译原理基础知识02
    1、文法:用来描述表达式的规则2、上下文无关文法(四个要素组成)①一个终结符号集(或者叫词法单元)②一个非终结符号集(或者叫语法变量)③一个产生式集合:就是由非终结符到终结......
  • 编译原理知识点
    第四章作业及相关知识点一、第一题知识点1、消除左递归\(P→Pα|β\)等价于\(P→βP’(P’\)为新增加的非终结符\(),P'→αP'|ε\)2、判断一个上下文无关文法是\(LL(1......
  • DTCC2022预告 | 玖章算术叶正盛:程序员必须掌握的数据库原理
    12月15日,玖章算术CEO叶正盛受邀将参加第13届中国数据库技术大会(DTCC2022),带来《程序员必须掌握的数据库原理》的主题演讲,将于15日下午16点50在「云原生数据库场开发与实践......
  • 004 计算机五大组成(计算机组成原理)
    控制器、运算器、存储器、输入设备、输出设备计算机在模仿人控制器控制(控制各个零件),连接各个器官(零件)运算器控制器只做控制,为什么要控制,怎么控制,就是运算器在做处理算术运算......
  • Servlet原理
    Servlet的本质是一个Java接口,定义了一套处理网络请求的规范。最主要的是两个生命周期方法init()和destory(),以及一个处理请求的service()。因为处理一个网络请求,绕不开:初......
  • taro 编译报:模块引入顺序不一致报错
    前情最近在开发一个小程序项目,基于公司的技术栈是React,于是使用Taro来开发小程序。坑位在开发中经常性的报类似如下的错误,大致意思是说你引入模块的顺序在不同模块中......