编译原理期末复习-3小时速通

教材使用:

第二章 形式语言理论

基本概念

  • 句子:只包含终结符。(基本上就是全部由小写字母组成)
  • 句型:推导过程中出现的所有符号串都叫做句型。只包含终结符的句型叫做句子。
  • 子树:语法树的某个节点连同他向下射出的部分组成了语法树的子树。
  • 简单子树:高度为2的子树叫做简单子树。下面红笔画出来的这两个子树就叫做简单子树。
  • 简单短语:高度为2的的子树(就是简单子树0)的叶子节点。像上面这棵树中的DE、F就是简单短语。
  • 句柄:最左简单子树末端节点组成的符号串。像上面这颗树,句柄就是DE。

如何求短语、直接短语、句柄

句柄:最左直接短语

如何消除左递归

如何判断文法类型

如何根据通式求文法

如何求最左推导和语法树

如何判别二义性和正则文法

如何写出通式

1)S=>aAb=>aAcb=>aAccb=>acccb

2)短语:aAb, Ac,c 句柄:Ac

3)文法G[S]是二义性文法。因为对于句子acccbacccb,存在多种不同的最左推导方式

4)

5)

第三章 自动机理论

如何根据正则文法构造状态转换图

如何将正规式转化为NFA

编译原理正规表达式转NFA到DFA再化简_哔哩哔哩_bilibili

如何将NFA转化为DFA

编译原理正规表达式转NFA到DFA再化简_哔哩哔哩_bilibili

第四章 词法分析

第五章 语法分析-自顶向下

如何求FIRST、FOLLOW、SELECT集

如何构造LL(1)分析表

构建LL(1)文法就是消除左递归:LL(1)文法:同一个左侧非终结符其所有SELECT的交集为空

作业讲解--LL(1)分析表构造_哔哩哔哩_bilibili

即求select集

第六章语法分析-自底向上

如何求出FIRSTVT和LASTVT集合

firstvt:找出产生式右部第一个出现的终结符

如何求出文法的优先关系表

如何根据优先关系表给出输入串的分析过程

例题:

如何构造LR(0)

编译原理LR(0)分析表(上)_哔哩哔哩_bilibili

7编译原理构造LR(0)分析表(包含构建项目规范族)_哔哩哔哩_bilibili

如何构造LR(1)

第七章 语义分析及中间代码生成

如何求逆波兰式

就是求抽象树的后序遍历(左右根)

如何求三元式和四元式

将一个运算当做一个():类似于(1)(+,a,b)

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

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

相关文章

【JSTS】JavaScript进阶Typescript秘籍:JS与TS区别?js和ts的语法上的区别?js开发者,如何更好的过渡为ts开发?

JavaScript进阶Typescript秘籍:JS与TS区别?js和ts的语法上的区别?js开发者,如何更好的过渡为ts开发? 一、JavaScript (JS)二、TypeScript (TS)三、JS与TS区别四、js和ts的语法上的区别?js开发者如何更好的过…

关于 覆铜与导线之间间距较小需要增加间距 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144776995 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

Spring Certified Professional 2024 (2V0-72.22)

关于认证 Spring Certified Professional (2V0-72.22) 认证可证明您在 Spring Framework 方面的专业知识,Spring Framework 是构建企业级 Java 应用程序的领先平台。此认证在全球范围内得到认可,并证明您在 Spring 的各个方面都具有熟练程度,…

【Vim Masterclass 笔记04】S03L12:Vim 文本删除同步练习课 + S03L13:练习课点评

文章目录 L12 Exercise 03 - Deleting Text1 训练目标2 训练指引2.1 打开文件 practicedeleting.txt2.2 练习删除单个字符2.3 练习 motion:删除(Practice deleting motions)2.4 文本行的删除练习(Practice deleting lines&#xf…

Spring Bean 无法被扫描到的问题

问题复现 ● 使用如下包结构: ● 我们发现 HelloWorldController 失效了,无法找到 HelloWorldController 这个 Bean 了。这是为何? 案例分析 ● 对于 Spring Boot 而言,关键点在于 Application.java 中使用了 SpringBootAppli…

Linux umami网站统计工具自定义API开发

Linux umami网站统计工具自定义API开发 一、src/queries/analytics/下添加调用sql查询文件:二、src/queries/index.js文件中增加导出模块内容:三、src/pages/api/下根据目录添加接口方法文件:四、构建项目,启动。1、到umami目录&a…

PHP 中的魔术常量

概述 PHP提供了9个魔术常数,您可以在PHP应用程序代码中使用。它们是“神奇的”,因为它们是在编译时定义的,不像常规常量(您可以自己定义)是在运行时定义的。这意味着它们的值可以根据它们在代码中的使用位置而更改。 …

libvirt学习

文章目录 libvirt 简介节点、Hypervisor和域libvirt 安装和配置libvirt的XML配置文件libvirt APIMain libvirt APIsError handlingSpecial specific APIs 建立到Hypervisor的连接libvirt API使用编译libvirt工具virshvirt-clonevirt-dfvirt-imagevirt-installvirt-topvirt-what…

源码分析之Openlayers中MultiPolygon类

概述 在Openlayers中,MultiPolygon类顾名思义就是表示由多个多边形组成的几何对象,关于Polygon类可以参考这篇文章源码分析之Openlayers中Polygon类;同Polygon类一样,MultiPolygon类继承于SimpleGeometry类。 本文主要介绍MultiPolygon类的…

单元测试4.0+思路总结

Jmockit使用笔记_增加代码覆盖率_覆盖try catch_使用new MockUp私有方法-CSDN博客 一般使用new MockUp模拟被测试代码中的私有方法(常用) 使用new Expetations模拟被测试代码中的方法?

12.31号 更新的动漫资源!

12.31号 更新的所有动漫资源(UC不限速) 遮天90集 4K高码率 uc:https://drive.uc.cn/s/3b93ab653cdf4?public1 夸克https://pan.quark.cn/s/cacfbafe5fcc 百度https://pan.baidu.com/s/16BZ0fY5fEvftpmu7tKuXzg?pwdjt5d 一念永恒30集 4…

AIGC与未来的通用人工智能(AGI):从生成内容到智能革命

目录 第一部分:AIGC概述 1.1 什么是生成式人工智能(AIGC) 1.2 AIGC的应用 第二部分:通用人工智能(AGI)概述 2.1 什么是通用人工智能(AGI) 2.2 AGI的关键特征 2.3 当前AGI的挑战 第…

【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断

本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7849012.html?templateId1718516 【标题】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断 【关键字】python驱动,gbk服务端,崖山数据库…

自动化测试工具Ranorex Studio(七十八)-故障排除

故障排除 如果你有连接问题,请考虑以下潜在的问题来源: • 请确保被测系统(移动设备)和运行测试的机器(安装Ranorex的)是在同一网络中的。 设备上的Wi-Fi设置更改后,请务必重新启动设备。 •…

常用的linux命令介绍

Linux是一个强大的操作系统,它提供了许多命令行工具来帮助用户管理文件和目录、监控系统性能、以及执行各种系统管理任务。下面是一些常用的Linux命令,我会用简单的语言来解释它们的作用: 1. ls • 作用:列出目录内容。 • 比喻&a…

万里数据库GreatSQL监控解析

GreatSQL是MySQL的一个分支,专注于提升MGR(MySQL Group Replication)的可靠性及性能。乐维监控平台可以有效地监控GreatSQL,帮助用户及时发现并解决潜在的性能问题。 通过在GreatSQL服务器上安装监控代理,收集数据库性…

缓存管理自动化:JuiceFS 企业版 Cache Group Operator 新特性发布

近期,JuiceFS 企业版推出了 Cache Group Operator,用于自动化创建和管理缓存组集群。Operator 是一种简化 Kubernetes 应用管理的工具,它能够自动化应用程序的生命周期管理任务,使部署、扩展和运维更加高效。 在推出 Operator 之前…

Wireshark和科来网络分析系统

Wireshark 是一款功能强大的网络协议分析工具,主要用于捕获和分析网络流量,帮助用户排查网络问题、进行安全分析和学习网络协议。以下是 Wireshark 的基础使用指南: 1. 安装 Wireshark 访问 Wireshark 官网 下载并安装适合你操作系统的版本…

无穿戴动作捕捉系统技术解密及多元化运用

在当今科技飞速发展的时代,动作捕捉技术不断革新,无穿戴动作捕捉系统崭露头角。与传统粘贴标记点的动作捕捉技术相比,无标记点动作捕捉技术具有显著优势。它能够在确保高精度捕捉的前提下,以非接触的方式极大地提升被捕捉对象的表…

wpf 基于Behavior库 的行为模块

Microsoft.Xaml.Behaviors 是一个用于WPF(Windows Presentation Foundation)的行为库,它的主要作用是允许开发者在不修改控件源代码的情况下,为控件添加自定义的行为和交互逻辑。行为库的核心思想是通过定义可重用的行为组件&…