编译原理之LR分析

1.LR(0)项目集规范组的构造

构成识别一个文法构造的DFA项目集的全体叫做这个文法的LR(0)项目集规范族(列表法)

2.LR(0)项目

如果U ::= ub 是文法G的一个规则,其中u或v可为空串,则U—>u.v是G的一个LR(0)项目

(文法G中每个产生式右边适当位置添加一个圆点构成项目)

这六个项目含义不同,一个产生式一共可以产生长度+1个项目

如果是空产生式,如果A只能推出空串,A - > ·

3.LR(0)项目的含义

每个LR(0)项目的含义与圆点的位置有关

移进项:圆点后面为终结符的项目

待约项:圆点后面为非终结符的项目

归约项:圆点在最右边的项目

接受项:Z - > u.,Z是识别符号

初始项:文法G[Z]的LR(0)项目Z ->.u,称为G的初始项

后继项:设U ->u·Av是文法G的一个LR(0)项,A∈V,则LR(0) U ->uA.v是后继项

项目集(项集):LR(0)项所组成的集合

后继项集:如果一个项集有一个项目,其中圆点后面是X,则在X进入的状态是X的后继状态,相继是X的后继项集

项集的闭包:设Sj是文法G的一个项集,项集Sj的闭包CLOSURE(Sj)是按照下列步骤得到的项集

(1)Sj的每一个项都在CLOSURE中

(2)如果U ->u.Vv∈CLOSURE(Sj),且 V::=w是一个规则,把V ->w放入CLOSURE(Sj)中

(3)重复步骤2,直到不在扩大

4.LR(0)项集规范族的构造步骤

5.项集规范族和特征有穷状态机

文法的LR(0)项集规范族可以被抽象成一个有穷状态机(FSM)

4.LR(0)文法的定义

LR(0)项目集规范族不存在移进-归约冲突或者归约-归约冲突的时候,称其为LR(0)文法(LR(0)分析表不存在多重定义)

5.GO(I,X)转换函数

GO(I,X) = CLOSURE(J)        I是状态,X是后继符号,J是基本项集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/407783.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

容器镜像详解

1. 镜像组成 一个标准的OCI容器镜像由index, manifest, config, image layers这几个部分组成。 以docker镜像为例,下载的镜像文件保存在/var/lib/docker/目录下面 image/overlay2子目录下面保存着镜像相关的一些元数据 在下面的介绍主要以nginx:latest镜像为例子…

数据结构与算法相关题解20240225

数据结构与算法相关题解20240225 一、58. 最后一个单词的长度二、48. 旋转图像三、69. x 的平方根四、50. Pow(x, n) 一、58. 最后一个单词的长度 简单 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度…

Mysql运维篇(四) MHA

大佬博文 https://www.cnblogs.com/gomysql/p/3675429.html MySQL 高可用(MHA) - 知乎 一、MHA简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司y…

回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测

回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测 目录 回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基…

MFC由初值终值步长生成数值序列

matlab的冒号运算符可以生成数值序列; 下面来生成自己的数值序列; vc6新建一个对话框工程; 放几个控件;添加成员变量如下; void CMycolonDlg::OnButton1() {// TODO: Add your control notification handler code hereUpdateData(TRUE);double d1, d2;CString str1, …

学习Markdown

https://shadows.brumm.af 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些…

弱引用与C++智能指针

笔试题遇到了弱引用,但是C标准库是没有这个概念的,学了智能指针但是没有听说过弱引用,因此总结一下两者 学习视频链接来自B站 https://www.bilibili.com/video/BV1gV4y1G7fH?p2&vd_sourcefa4ef8f26ae084f9b5f70a5f87e9e41b智能指针 C的…

C# 中 SQLite 查询数据库表中字段(列)是否存在的方法

查询SQLite数据库表中字段(列)存在的方法 使用SQL语句为:PRAGMA table_info([DeviceTrees]); 其中“DeviceTrees”为数据库表的名称。 使用SQLite Expert Professional工具,查看该语句是否起作用,这里使用的版本是…

Nest.js权限管理系统开发(三)环境变量与配置文件

一般来说数据库的配置包含了一些敏感信息,不宜写在代码中提交到远程仓库,所以我们可以将配置写在配置文件中,然后提交 git 时候将生产环境的配置文件其忽略。我们可以新建.env和.env.prod两个文件分别存放开发与生产环境配置,也可以使用YAML等…

Linux环境下的性能分析 之 CPU篇(二)

2、CPU的使用情况分析 a、类似任务管理器的top & htop 说到对CPU的性能分析,大家一定不会忘记windows下那个最熟悉的工具:任务管理器。 有了这个玩意儿,我们就可以看到CPU的利用率,以及每一个进程所占用的CPU资源。那在Linu…

【编译原理】第七八章课后习题(王原生第三版)

前言 课本: 编译原理(第三版)[王生原、董渊…等编著]习题: 主要习题内容是第一章到第八章,具体内容如下表 章节内容链接第一章课后部分选择题https://blog.csdn.net/Zchengjisihan/article/details/136243955第二章课…

瑞_23种设计模式_桥接模式

文章目录 1 桥接模式(Bridge Pattern)1.1 介绍1.2 概述1.3 桥接模式的结构 2 案例一2.1 需求2.2 代码实现 3 案例二2.1 需求2.1 代码实现 🙊 前言:本文章为瑞_系列专栏之《23种设计模式》的桥接模式篇。本文中的部分图和概念等资料…

[Linux]文件基础-如何管理文件

回顾C语言之 - 文件如何被写入 fopen fwrite fread fclose fseek … 这一系列函数都是C语言中对文件进行的操作: int main() {FILE* fpfopen("text","w");char str[20]"write into text";fputs(str,fp);fclose(fp);return 0; }而上…

Stable Diffusion 3震撼发布模型与Sora同架构

Prompt:Epic anime artwork of a wizard atop a mountain at night casting a cosmic spell into the dark sky that says "Stable Diffusion 3" made out of colorful energy Stability AI发布Stable Diffusion 3文本到图像模型。该模型采用扩散变换架构…

ARM处理器有哪些工作模式和寄存器?各寄存器作用是什么?ARM异常中断处理流程?

《嵌入式工程师自我修养/C语言》系列——ARM处理器有哪些工作模式和寄存器?各寄存器作用是什么? 一、ARM处理器的工作模式及寄存器1.1 ARM处理器的工作模式1.2 ARM处理器中的寄存器 二、ARM 异常中断处理2.1 什么是异常?异常向量表是什么&…

Python sorted函数

在Python编程中,sorted()函数是一个内置函数,用于对可迭代对象进行排序。这个函数可以应用于列表、元组、字符串等可迭代对象,并返回一个新的已排序的列表。sorted()函数还提供了一系列的参数,可以实现不同类型的排序,…

服务区智慧公厕

在如今追求智能化、便捷化的社会背景下,高速公路服务区智慧公厕正成为人们关注的焦点。作为高速公路上的必要设施,公厕的提升已经不再局限于简单的清洁卫生,而是更多地涉及到智能化、舒适度和用户体验。本文以智慧公厕源头厂家广州中期科技有…

Autoencoder深度学习中的无监督学习神经网络

在当今的深度学习领域中,自动编码器(Autoencoder)是一种常见的无监督学习神经网络模型,用于学习有效的数据表示。自动编码器在许多领域都有广泛的应用,包括特征提取、降维、图像去噪、生成模型等。 自动编码器的基本原…

【GPTs分享】GPTs分享之consensus

大家好,元宵节快乐,今天给大家分享的GPTs是consensus。consensu号称无需关键字即可搜索2亿文章,而且给出的链接绝对保真,不再是胡编乱造的,而且能够根据指定主题辅助编写论文或者博客。 简介 consensus使用chat.cons…

Java内部类的使用与应用

内部类的使用与应用 1. 内部类用法 普通内部类: 实例化内部类对象需要先实例化外部类对象,然后再通过OuterClassName.new InnerClassName()方式实例化内部类。内部类对象在创建后会与外部类对象秘密链接,因此无法独立于外部类创建内部类对象…
最新文章