语法分析-编译原理期末复习

自上而下的语法分析

自上而下语法分析法:或从开始符号出发,找最左推导;或从根开始,构造推导树。

自下而上语法分析法:从输入串开始,归约,直至文法开始符。

回溯分析法

产生回溯的原因:公共左因子(开始匹配上了,可能走错分枝)、左递归(不知道递归多少次)、空产生式。

公共左因子

左递归(直接、间接)

空产生式

提取公共左因子

将文法
S→xAy
A→ab│ac
改造成:
S→xAy
A→aB
B→b│c

消除左递归

消除直接左递归

别忘了改写之后的空。

消除间接左递归

预测分析法

预测分析是一种表驱动方法,由下推栈、预测分析表和控制程序组成。它实际上一种下推自动机的实现模型。

初始时,#和开始符(S)入栈,输入指针指向第一个符号,
然后根据下推栈栈顶符x和当前输入符a进行工作:
① x=a=#, 成功
② x=a不等于#, 匹配(一定是终结符,从栈顶和输入串中去除
x是非终结符VN, 查表(非终结符查表,才可以逐步推导替换为终结符)。并把产生式右部符号按逆序推进栈

构建预测分析表

1. FIRST集

FIRST(a)表示可能由a推导的开头终结符以及可能的空

对每个文法符号X:VT和VN,连续使用入下规则,直到每个FIRST(X)不再增大

假设X-〉X1X2…Xn

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Git】分支管理 -- 详解

一、理解分支 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习 C 的时候,另一个你正在另一个平行宇宙里努力学习 JAVA。 如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙…

解决 clickhouse jdbc 偶现 failed to respond 问题

背景 Clickhouse集群版本为 Github Clickhouse 22.3.5.5, clickhouse-jdbc 版本为 0.2.4。 问题表现 随着业务需求的扩展,基于Clickhouse 需要支持更多任务在期望的时效内完成,于是将业务系统和Clickhouse交互的部分都提交给可动态调整核心…

InfiniGate自研网关实现思路七

25.网关Nginx负载模型配置 通过模拟多个HTTP服务配置到 Nginx 做负载均衡,以学习API网关负载的配置和使用 API 网关是用于支撑分布式 RPC 接口协议转换提供 HTTP 调用的一套服务,那么 API 网关系统就需要可横向扩展来满足系统的吞吐量诉求。所以这里需…

HTML如何让文字底部线条不紧贴在文字下面(既在内容下方又超出内容区域)

hello,大家好,星途星途今天给大家带来的内容是如何让文字底部线条不紧贴在文字下面。 话不多说,先上效果图 简单来说就是padding和margin的区别。 在网页设计中,有时我们想要给某个元素添加一个装饰性的线条,比如底部…

Python实现定时任务的方式

大家好,在当今数字化的时代,定时任务的需求在各种应用场景中频繁出现。无论是数据的定时更新、周期性的任务执行,还是特定时间点的操作触发,Python 都为我们提供了强大而灵活的手段来实现这些定时任务。当我们深入探索 Python 的世…

美国年轻人热衷床上“摆烂”,沃尔玛发掘床上用品新商机!

美国年轻人近年来热衷于床上“摆烂”生活方式,这反映了他们对舒适放松的追求和现代生活的压力。沃尔玛作为零售业巨头,敏锐地捕捉到这一市场变化,发现了床上用品的新商机。 美国年轻人忙碌中渴望宁静空间。床成为他们放松、逃离现实压力的理想…

计算机网络学习笔记——运输层(b站)

目录 一、 运输层概述 二、运输层端口号、复用与分用的概念 三、UDP和TCP的对比 四、TCP的流量控制 五、TCP的拥塞控制 六、TCP超时重传时间的选择 七、TCP可靠传输的实现 八、TCP报文段的首部格式 一、 运输层概述 物理层、数据链路层、网络层实现了主机到主机的通信…

【MySQL】表的基本操作

🌎表的基本操作 文章目录: 表的基本操作 创建查看表       创建表       查看表结构 表的修改       表的重命名       表的添加与修改       删除表结构 总结 前言: 在数据库中,数据表是存储和组…

项目-双人五子棋对战:匹配模块的实现(3)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 模块详细讲解 功能需求 匹配就类似于大家平常玩的王者荣耀这样的匹配功能, 当玩家点击匹配之后, 就会进入到一个匹配队列, 当匹配到足够数量的玩家后, 就会进入确认页. 在这里, 我们主要实现的是1 - 1匹配功能, 首先先…

前端应用开发实验:组件应用

目录 实验目的相关知识点实验内容及要求代码实现效果 实验目的 (1)掌握组件的创建方法(全局组件、局部组件); (2)重点学会组件之间的数据传递(prop传值、自定义事件)&am…

一文了解JVM面试篇(上)

Java内存区域 1、如何解释 Java 堆空间及 GC? 当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建 堆空间,当程序中创建对象的时候,就从对空间中分配内存。GC 是 JVM 内部的一 个进程,回收无效对象的内存用于将来的分配。 2、JVM 的主要组成…

PPT文件损坏且无法读取怎样修复?文档损坏修复方法推荐

PPT文件已经成为工作汇报、商务演示、学术交流以及教学培训中最常用到的文件,随着文件数量的增多和存储设备的频繁使用,我们有时会遇到PPT文件损坏无法打开的情况,这无疑给工作和学习带来了极大的困扰。 PPT文件损坏的原因可能多种多样&#…

实验9 静态路由配置

实验9 静态路由配置 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 网络中的每个路由器都会维护一张路由表或转发表。路由表的表项记录着目的网络信息以及下一跳I 地址。路由表可以手动配置,也可以通过路由算法动态生成。静态…

20240605在WIN99主板上安装从微软官网下载的WIN10的HOME版本通过kms方式激活

20240605在WIN99主板上安装从微软官网下载的WIN10的HOME版本通过kms方式激活 2024/6/5 18:45 https://blog.csdn.net/qq_28606555/article/details/131665546?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-4-131665546-blog-13187568…

植物大战僵尸杂交版2.0.88最新版+防闪退工具V2+修改工具+高清工具

植物大战僵尸杂交版,不仅继承原作的经典玩法,而且引入了全新的植物融合玩法,将各式各样的植物进行巧妙的杂交,孕育出前所未有、功能各异的全新植物。 创新的杂交合成系统 游戏引入了创新的杂交合成系统,让玩家可以将不…

力扣 54.螺旋矩阵

题目描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入&#…

ESP32S3——多线程

一、环境: 平台:arduino IDE 或 VS Code PlatformIO 皆可。 我的是后者,具体为: 框架:VS PlatformIO Arduino 二、硬件准备: 一个esp32s3 本文用到的是U0RXD(GPIO44 )与U0TXD…

C++ primer例子1实现

问题 代码 Sales_item.h #include<iostream> #include<string> class Sales_item {public:Sales_item(){};Sales_item(std::string insid, int num, double price);friend std::istream& operator>>(std::istream& is, Sales_item& item);frie…

ARM的工作模式

ARM的几种工作模式 User : 非特权模式&#xff0c;大部分任务执行在这种模式 FIQ : 当一个高优先级&#xff08;fast) 中断产生时将会进入这种模式IRQ : 当一个低优先级&#xff08;normal) 中断产生时将会进入这种模式 Supervisor&#xff08;SVC&#xff09; : 当复位或软中断…