编译原理1

news2024/10/7 20:25:37

 NFA&DFA

在正规式的等价证明可以借助正规集,也可以通过有限自动机DFA来证明等价,以下例题是针对DFA证明正规式的等价,主要步骤是①NFA;②状态转换表; ③状态转换矩阵; ④化简DFA;

文法和语言

文法通常表示成 四元组 G[S] = ( V T V N S ξ):
(1)   V T 为终结符号集 ,这是一个非空有限集,它的每个元素 称为 终结符号
(2)   V N 为非终结符号集 ,它也是一个非空有限集,每个元 素称为 非终结符号 且有 V T ∩V N  = Φ
(3)  S 为文法开始符 ,是一个特殊的非终结符号,即 S V N
(4)   ξ /ksi/ 是产生式的非空有限集 ,其中每个产生式 ( 或称规 ) 是一序偶 β) ,通常写作
α → β α ::= β
α β 是由终结符和非终结 符组成的符号串, α (V T V N ) + 且至少有一个非终结符, β (V T V N ) *

例:产生标识符的文法

例:奇数集合,不允许出现以0开头的奇数文法 

例:上下文无关文法描述正规表达式 

基本概念: 

① 句子仅含有终结符,是特殊的句型;

②文法开始符号一定是句型

③文法产生的句子的全体为文法产生的语言;(标识符、表达式i+i*i都是语言,都由非终结符组成) 

④文法确定,则语言一定确定;反之,不一定可以由语言唯一确定文法;

⑤文法产生语言的过程中必须经过‘+’次推导(至少进行一次推导);

形式语言分类:

(1) 0型文法与语言

对应图灵机; 

文法G[S]的每一个产生式 都有   α->β  

α 作为产生式左端,至少有一个非终结符

β 作为产生式右端,不做要求(甚至可以为空); 

(2) 1型文法与语言

线性界限自动机,自然语言;

在0型文法的基础上要求文法产生式左端的长度要 小于等于 右端的长度;

 (3) 2型文法与语言

对应下推自动机,程序设计语言;

文法G[S]的每一个产生式 都有   A->α  

A∈非终结符

α∈(终结符和非终结符的闭包) 

(4) 3型文法与语言

对应有限自动机;

文法G[S]的每一个产生式 都有   A->α  或者  A->αB[右线性]  或者  A->Bα[左线性] 

A∈非终结符

α∈(终结符的闭包) 

关系和区别

① 1-3型文法属于 0 型文法;

② 2型 和 3型 文法不一定属于 1型 文法;

③ 1型文法 不允许有形如“”A->ε”, 2、3型文法允许;

④ 0、1型文法左边产生式 可以含有终结符或者两个以上终结符; 2、3型文法左端产生式要求单个非终结符(单非);

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

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

相关文章

【关于C/C++中的scanf不能使用问题】

方法1:scanf_s 方法2:看见后面的日志了吗 CRT……?在第一行加上#define 日志 方法3:#pragma warning(disable:4996) 4996是我们的报错序号

B站、小红书崩,原因竟然是...它

B站崩!小红书崩! 大家好,我是那个在B站和小红书崩溃时,还在试图刷新页面的技术博主。到底是怎么一回事儿?今天,让我们一起来‘挖掘’这场技术‘灾难’的真相。 上午 10 点左右,微信技术群里突…

西南交通大学【算法分析与设计实验1】

实验1.4 有向图拓扑排序 实验目的 (1)掌握算法的自然语言描述法,流程图绘制方法以及伪代码描述方法。 (2)理解算法的执行过程。 (3)掌握算法的编程实现方法、调试方法及测试方法。 实验任务…

JSON JOLT常用示例整理

JSON JOLT常用示例整理 1、什么是jolt Jolt是用Java编写的JSON到JSON转换库,其中指示如何转换的"specification"本身就是一个JSON文档。以下文档中,我统一以 Spec 代替如何转换的"specification"json文档。以LHS(left hand side)代…

【AIGC X UML 落地】从UML语句到UML图形的生成,来看Agent插件的制作

上篇我们讲到如何通过多智能体实现自然语言绘制UML图。 没有看过的,可以去看下原文:《【AIGC X UML 落地】通过多智能体实现自然语言绘制UML图》 其中有一个实现重点,就是如何将 PlantUML 语句生成 UML 图片。在这里笔者是通过自定义 Agent 插件来实现这一流程。 本文,就此…

disql使用

进入bin目录:cd /opt/dmdbms/bin 启动disql:./disql,然后输入用户名、密码 sh文件直接使用disql: 临时添加路径到PATH环境变量:在当前会话中临时使用disql命令而无需每次都写完整路径,可以在执行脚本之前…

在非 antd pro 项目中使用 umi OpenAPI

大家好,我是松柏。自从跟着鱼皮哥使用了ant design pro中的OpenAPI插件之后,我已经无法忍受自己写请求后端接口的方法了,所以这篇文章记录一下如何在非ant design pro项目中使用OpenAPI。 安装依赖 首先我们需要安装包umijs/openapi&#x…

02归并排序——分治递归

02_归并排序_——分治_递归_ #include <stdio.h>void merge(int arr[], int l, int m, int r) {int n1 m -l 1;int n2 r -m;//创建临时数组int L[n1], R[n2];for(int i 0; i < n1; i){L[i] arr[l i];}for(int j 0; j < n2; j){R[j] arr[m 1 j];}int i …

STM32 ADC精度提升方法

STM32 ADC精度提升方法 Fang XS.1452512966qq.com如果有错误&#xff0c;希望被指出&#xff0c;学习技术的路难免会磕磕绊绊量的积累引起质的变化 硬件方法 优化布局布线&#xff0c;尽量减小其他干扰增加电源、Vref去耦电容使用低通滤波器&#xff0c;或加磁珠使用DCDC时尽…

【驱动篇】龙芯LS2K0300之红外驱动

实验目标 编写HX1838红外接收器驱动&#xff0c;根据接收的波形脉冲解码红外按键键值 模块连接 模块连接&#xff1a;VCC接Pin 2&#xff0c;GND接Pin1&#xff0c;DATA接Pin16 驱动代码 HX1838 GPIO初始化&#xff0c;申请中断&#xff0c;注意&#xff1a;GPIO48默认是给…

Spring Boot 中 PGSQL 判断打卡点是否经过轨迹优化代码,循环查询物理表修改生成临时表,向临时表插入数据后再做ST_DWithin判断

记录一下一个业务问题&#xff0c;流程是这样的&#xff0c;我现在有一个定时任务&#xff0c;5分钟执行一次&#xff0c;更新车辆打卡的情况。现在有20俩车&#xff0c;每辆车都分配了路线&#xff0c;每条路线都有打卡点&#xff0c;每个打卡点分配了不同的时间段&#xff0c…

【动态规划 前缀和】2478. 完美分割的方案数

本文涉及知识点 划分型dp 动态规划汇总 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode 2478. 完美分割的方案数 给你一个字符串 s &#xff0c;每个字符是数字 ‘1’ 到 ‘9’ &#xff0c;再给你两个整数 k 和 minLength 。 如…

Redis---保证主从节点一致性问题 +与数据库数据保持一致性问题

保证主从节点一致性问题 Redis的同步方式默认是异步的&#xff0c;这种异步的同步方式导致了主从之间的数据存在一定的延迟&#xff0c;因此Redis默认是弱一致性的。 解决&#xff1a; 1.使用Redisson这样的工具&#xff0c;它提供了分布式锁的实现&#xff0c;确保在分布式环…

python自动化运维--DNS处理模块dnspython

1.dnspython介绍 dnspython是Pyhton实现的一个DNS工具包&#xff0c;他几乎支持所有的记录类型&#xff0c;可以用于查询、传输并动态更新ZONE信息&#xff0c;同事支持TSIG&#xff08;事物签名&#xff09;验证消息和EDNS0&#xff08;扩展DNS&#xff09;。在系统管理方面&a…

京东云备案流程图_云主机快速ICP备案_京东云服务器备案问题解答

京东云ICP备案流程&#xff0c;备案包括网站和APP备案&#xff0c;以及备案问题解答FAQ&#xff0c;阿腾云以京东云网站域名备案流程为例&#xff0c;先填写主办单位信息&#xff0c;选择网站备案或APP备案&#xff0c;申请授权码并验证&#xff0c;填写并上传主办单位详细信息…

老挝语翻译成简体中文推荐用什么翻译工具?《老挝语翻译通》App满足你所有翻译需求!

如果你正在找一款支持把老挝语翻译成中文&#xff0c;或者把中文翻译成老挝语的翻译工具&#xff0c;不得不推荐你使用《老挝语翻译通》App&#xff0c;您的随身老挝语翻译官&#xff0c;带您轻松跨越语言障碍。 功能亮点&#xff1a; 实时翻译&#xff1a;中文与老挝语的无缝…

论文阅读【时间序列】DSformer

论文阅读【时间序列】DSformer arxive: DSformer: A Double Sampling Transformer for Multivariate Time Series Long-term Prediction github: MTST 分类&#xff1a;多变量时间序列&#xff08;Multivariate time series&#xff09; 核心观点 多变量时间序列3个维度信息 …

一款十六进制编辑器,你的瑞士军刀!!【送源码】

软件介绍 ImHex是一款功能强大的十六进制编辑器&#xff0c;专为逆向工程师、程序员以及夜间工作的用户设计。它不仅提供了基础的二进制数据编辑功能&#xff0c;还集成了一系列高级特性&#xff0c;使其成为分析和修改二进制文件的理想工具。 功能特点 专为逆向工程、编程和夜…

Appium adb 获取appActivity

方法一&#xff08;最简单有效的方法&#xff09; 通过cmd命令&#xff0c;前提是先打开手机中你要获取包名的APP adb devices -l 获取连接设备详细信息 adb shell dumpsys activity | grep mFocusedActivity 有时获取到的不是真实的Activity 方法二 adb shell monkey -p …

K6 性能测试教程:入门介绍,环境搭建和编写第一个 K6 测试脚本

K6 性能测试教程&#xff1a;入门介绍&#xff0c;环境搭建和编写第一个 K6 测试脚本 这篇文章将带您进入 K6 性能测试的世界。博文内容涵盖了 K6 性能测试的入门知识、环境搭建步骤&#xff0c;以及如何编写您的第一个测试脚本。无论您是初学者还是有经验的性能测试专业人员&…