首页 > 其他分享 >编译原理知识点

编译原理知识点

时间:2022-12-14 10:24:08浏览次数:40  
标签:知识点 文法 终结符 编译 原理 FOLLOW SELECT FIRST

第四章作业及相关知识点

一、第一题知识点

1、消除左递归

\(P → Pα|β\)等价于\(P→βP’(P’\)为新增加的非终结符\(), P'→αP'|ε\)

2、判断一个上下文无关文法是\(LL(1)\)文法

一个上下文无关文法是LL(1)文法的充分必要条件是,对每个非终结符的两个不同的产生式,\(A→α,A→β\),满足:\(SELECT(A→α)∩SELECT(A→β)= φ\)

3、求\(select\)集

设$G=(V_T,V_N,S,P) α∈V* $

$FIRST(α)={a|α==*> aβ,a∈V_T}

若\(α==*>ε\),则\(SELECT(A→α)= FIRST(α)\)

若\(α==*>ε\),则\(SELECT(A→α) = (FIRST(α)-{ε})∪FOLLOW(A)\)

4、求\(first\)集

设$G=(V_T,V_N,S,P) α∈V* $

$FIRST(α)={a|α==*> aβ,a∈V_T}

若\(α==*>ε,则ε∈FIRST(α)\)

\(FIRST(α)\)是\(α\)的所有可能推导的首遇终结符号或ε,是选择产生式的依据。

5、求\(follow\)集

\(A∈V_N\)
\(FOLLOW(A)={ a|S==*>…Aa…,a∈V_T }\)
若\(S==*>…A\),则#\(∈FOLLOW(A)\)
'#'—输入串的结束符 也可看作是句子的括号 #S#
\(FOLLOW(A)\)表示了句型中可能紧跟在\(A\)后面的终结符号

6、构造预测分析表

设有文法\(G\),预测分析表构造过程:

  • 计算所有候选式\(α\)的首符集 \(FIRST(α)\)
  • 计算所有非终结符A的后继符集\(FOLLOW(A)\)
  • 计算所有产生式的\(SELECT(A→α)\)集合
  • 构造预测分析表 \(M\)

标签:知识点,文法,终结符,编译,原理,FOLLOW,SELECT,FIRST
From: https://www.cnblogs.com/N-lim/p/16981377.html

相关文章

  • DTCC2022预告 | 玖章算术叶正盛:程序员必须掌握的数据库原理
    12月15日,玖章算术CEO叶正盛受邀将参加第13届中国数据库技术大会(DTCC2022),带来《程序员必须掌握的数据库原理》的主题演讲,将于15日下午16点50在「云原生数据库场开发与实践......
  • 004 计算机五大组成(计算机组成原理)
    控制器、运算器、存储器、输入设备、输出设备计算机在模仿人控制器控制(控制各个零件),连接各个器官(零件)运算器控制器只做控制,为什么要控制,怎么控制,就是运算器在做处理算术运算......
  • Servlet原理
    Servlet的本质是一个Java接口,定义了一套处理网络请求的规范。最主要的是两个生命周期方法init()和destory(),以及一个处理请求的service()。因为处理一个网络请求,绕不开:初......
  • taro 编译报:模块引入顺序不一致报错
    前情最近在开发一个小程序项目,基于公司的技术栈是React,于是使用Taro来开发小程序。坑位在开发中经常性的报类似如下的错误,大致意思是说你引入模块的顺序在不同模块中......
  • Glibc---__gen_tempname函数原理分析学习
    引言__gen_tempname是Glibc库stdio.h头文件中生成临时文件名的函数,包含了相关临时文件名的生成逻辑,我们来一起分析一下临时文件名的生成过程。__gen_tempname函数参数说明ch......
  • 各种开源的交叉编译
    1v4l1.1hi3559av100交叉编译hi3559av100:exportPKG_CONFIG_LIBDIR=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/aarch64-linux-gnu/lib64/./configure--hos......
  • 入门Linux运维工程师需要掌握的知识点和工具以及技能
    Linux系统的学习,可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,比如Ubuntu等,根据自己的工作情况和兴趣来定。当然不同发行版本主要是包上的区别......
  • Transformer 必备知识点
    NNDL学习笔记transformer:基于多头自注意力的序列到序列的模型 前馈神经网络全连接ResNet残差连接层归一化Softmax编码器-解码器 注意力机制自注意力模型......
  • C++ OpenSSL库编译及使用(VS2017,Python)
    文章目录​​1、简介​​​​2、下载openssl​​​​2.1下载openssl源码(github)​​​​2.2下载openssl源码(官网压缩包)​​​​2.3下载openssl二进制库​​​​2.4下载pe......
  • Roslyn动态编译代码
    https://learn.microsoft.com/en-us/archive/msdn-magazine/2017/may/net-core-cross-platform-code-generation-with-roslyn-and-net-corehttps://www.tugberkugurlu.com......