编译原理期末速成-LL(1)文法、FIRST集、FOLLOW集

news2024/11/25 20:12:00

文章目录

  • LL(1)文法的条件
  • LL(1)分析法
  • 构造FIRST(α)
  • 构造FOLLOW(A)
  • 习题强化

LL(1)文法的条件

  1. 文法不含左递归

  2. 对于文法中每一个非终结符A的各个产生式的候选首符集两两不相交。即若在这里插入图片描述

  3. 对于文法中的每个非终结符A,若它存在某个候选首符集包含ε,则在这里插入图片描述

    这里,LL(1)的第一个L表示从左到右扫描输入串,第二个L表示最左推导,1表示分析时每一步只需要向前查看一个符号。

LL(1)分析法

对于一个LL(1)文法,可以对其输入串进行有效的无回溯的自上而下分析,假定要用非终结符A进行匹配,面临的输入符号为a,A的所有产生式为在这里插入图片描述

步骤:
在这里插入图片描述

构造FIRST(α)

在这里插入图片描述

构造FOLLOW(A)

在这里插入图片描述

看完这些理论,有没有怀疑人生?我是谁?我在哪?这些是什么啊?小朋友真的有好多问号???

三分钟抚平一下内心的懵逼与无奈,下面这道题,写的比较啰里啰唆,但是看完应该能抚平你刚刚哪些内心无限的问号,看题吧~~~

习题强化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6s3suoQm-1686749128263)(C:\Users\oneself\Pictures\编译原理\微信图片_20230614210312.jpg)]

先求所有非终结符的FIRST集:

在这里插入图片描述

第一遍扫描结束,其结果为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-637yAcrp-1686749128264)(C:\Users\oneself\Pictures\编译原理\微信图片_20230614211316.jpg)]

有FIRST集发生变化,继续重新开始扫描

在这里插入图片描述

第二遍扫描结束,其结果为

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Swd4fvky-1686749128266)(C:\Users\oneself\Pictures\编译原理\微信图片_20230614211441.jpg)]

有FIRST集发生变化,继续重新开始扫描

在这里插入图片描述

第三遍扫描结束,其结果为

在这里插入图片描述

有FIRST集发生变化,继续重新开始扫描,同上面的步骤和方法,扫描整个文法,发现没有FIRST发生改变,所以结束,最终结果为

在这里插入图片描述

求所有非终结符的FOLLOW集:
在这里插入图片描述
在这里插入图片描述
最终结果:
在这里插入图片描述
一直在崩溃的边缘要不要把FOLLOW集写完,写完了但是比较草率,如果没看懂或者有不懂的可以在评论区或者私我,希望大家顺利通过期末考试,编译原理真的为难我们呜呜呜~~~~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试被问到:测试计划和测试方案有什么区别?

面试的时候,很多小伙伴都被面试官问过这个问题 “测试计划和测试方案有什么区别”? 到底有什么区别呢?我们先好好了解下这两个文档。 一、测试计划 1、测试计划是什么? 测试计划是组织管理层面的文件,从组织管理的…

Jetpack Compose 中使用 CameraX 拍照和录制视频

在 Android 开发的历史中,Camera 的 API 是一直受人诟病的,使用过的人都知道,直观的感觉就是配置复杂、臃肿、难用、不易理解,从官方关于 Camera 的 API 迭代路线可以看出官方也在尝试着不断改进开发者关于Camera的使用体验&#…

ChatGPT编程

ChatGPT问答 问题一:如何合理分配时间问题二:以下是提高工作效率的建议:问题三:如何培养兴趣问题四:软件和硬件谁重要问题五: 设计模式如何熟练运用问题六:C语言编程冒泡排序 问题一:如何合理分配时间 这里…

Java实训第八天——2023.6.14

文章目录 一、vue的环境搭建:二、文本数据绑定三、属性数据绑定四、事件绑定五、案例1——全选/全不选六、案例2——切换图片主要内容: v-if 、v-show指令 七、表单数据绑定八、综合练习总结步骤: 一、vue的环境搭建: 官方文档&a…

Mysql数据库中的约束、用户管理与授权

文章目录 一、Mysql中常见的约束总结 二、数据表高级操作2.1克隆表,将数据表的数据记录生成到新的表中2.2清空表,删除表内的所有数据2.3创建临时表2.4创建外键约束,保证数据的完整性和一致性。 三、数据库用户管理3.1新建用户3.2查看用户信息…

《设计模式》之适配器模式

文章目录 1、定义2、动机3、应用场景4、类结构5、优缺点6、总结7、代码实现(C) 1、定义 把一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法再一起工作的两个类能在一起工作。 2、动机 在软件系统中,由于应用环境的变化&#xf…

Spring源码解密--事务篇

文章目录 一、事务的实现方式1、JDBC2、Spring基于xml配置编程式事务声明式事务 二、源码设计1、TransactionManager1)TransactionManager2)PlatformTransactionManager3)ReactiveTransactionManager 2、TransactionDefinition3、Transaction…

压缩感知入门——基于总体最小二乘的扰动压缩感知

压缩感知系列博客:压缩感知入门①从零开始压缩感知压缩感知入门②信号的稀疏表示和约束等距性压缩感知入门③基于ADMM的全变分正则化的压缩感知重构算法 文章目录 1. Problem2. 仿真结果3. MATLAB算法4. 源码地址参考文献 1. Problem 一个经典的压缩感知重构问题可以…

Git的原理与使用

背景知识: 我们在编写各种文档时,为了防止文档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出一个副本。每个版本有各自的内容,但最终会只有一份报告需要被我们使用 。但在此之前的工作都需要这些不…

day10_类中成员之变量

通过以前的学习,我们知道了成员变量是类的重要组成部分。对象的属性以变量形式存在,下面我们就来详解的学习一下类中的变量 成员变量 成员变量的分类 实例变量:没有static修饰,也叫对象属性,属于某个对象的&#xf…

9k字长文理解Transformer: Attention Is All You Need

作者:猛码Memmat 目录 Abstract1 Introduction2 Background3 Model Architecture3.1 Encoder and Decoder Stacks3.2 Attention3.2.1 Scaled Dot-Product Attention3.2.2 Multi-Head Attention3.2.3 Applications of Attention in our Model 3.3 Position-wise Feed…

Linux 数据库 MySQL

Linux系统分类 ^ 数据库的分类 Linux系统 Centos(获取软件包使用yum、dnf) Ubuntu(获取软件包使用apt-get) Suse 国产系统 华为 欧拉 阿里 龙蜥 腾讯 tencentOS 麒麟(银河麒麟、中标麒麟->基于centos 优麒麟-> 基于Ubuntu ) 统…

流计算、Flink和图计算

流计算 流计算流计算概述静态数据和流数据批量计算和实时计算流计算概念流计算与Hadoop流计算框架 流计算处理流程数据处理流程数据实时采集数据实时计算实时查询服务 流计算的应用开源流计算框架StormStorm简介Storm的特点 FlinkFlink简介为什么选择Flink传统数据处理架构大数…

三年 Android 开发的技术人生,浅谈自身面试的感悟

文章素材来源于网友 本篇主要记录了一个 Android 菜瓜三年的面试之旅,希望对大家面试、跳槽有所帮助。 一些唠叨 从进入这行开始,就是听说Android端凉了,寒冬这又如何那又如何的事情,很多的风言风语缠绕着这个圈子。但是老弟觉得…

电商系统架构设计系列(三):关于「订单系统」有哪些问题是要特别考虑的?

订单系统是整个电商系统中最重要的一个子系统,订单数据也就是电商企业最重要的数据资产。 上篇文章中,我给你留了一个思考题:当系统在创建和更新订单时,如何保证数据准确无误呢? 今天这篇文章,主要聊一下&…

DM8:达梦数据库开启SQL日志sqllog

DM8:达梦数据库开启SQL日志sqllog 环境介绍1 修改配置文件sqllog.ini2 开启与关闭 DMSQLLOG2.1 开启 sql 日志记录功能2.2 查询 sql 日志记录是否开启:0 关闭,1/2/3开启);2.3 关闭 sql 日志记录功能 3 sqllog.ini 详细介绍4 更多达梦数据库使用经验总结 …

辅助驾驶功能开发-功能算法篇(3)-ACC-弯道速度辅助

1、功能架构:ACC弯道速度辅助(CSA) 2、CSA功能控制 2.1 要求 2.1.1 CSA ASM:弯道速度辅助 1. 模式管理器:驾驶员应能够激活/关闭功能 应存在处理 CSA 功能的模式管理器。模式管理器由驾驶员输入和系统状态控制。 模式管理器有两个由 CSAStatus 定义的状态。状态转换定义…

ubuntu 系统解决GitHub无法访问问题

先后试了网上两个教程,终于解决。通过修改host文件实现访问。 教程1: 1)终端输入: sudo gedit /etc/hosts 打开hosts文件; 2)使用ip查找工具查询 http://github.com和IP:http://github.global.ssl.fastly.net的ip地址并添加到hosts文件末尾; 3)关掉hosts文件,在终端…

HTTPS协议-保障数据安全【安全篇】

我们都知道由于HTTP是明文的,整个传输过程完全透明,任何人都能够在链路中监听、修改、伪造请求/响应报文。所以不能满足我们的安全要求。比我如我们上网的信息会被轻易的截获,所浏览的网站真实性也无法验证。黑客可以伪装成银行、购物网站来盗…

接口测试常见接口类型?

常见接口类型 1.根据协议区分 1、webService接口:是走soap协议通过http传输请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有Soapul、jmeter、loadrunner等; 2、http接口:是走http协议,…