首页 > 其他分享 >【编译原理】原理笔记

【编译原理】原理笔记

时间:2024-04-23 15:57:23浏览次数:22  
标签:begin end ft 笔记 编译 pmatrix 原理 empty rightarrow

随便记点防止期末烂掉

语法分析

直接左递归的消除

实际就是左递归转右递归

法1:直接替换

\[A\rightarrow A\alpha|\beta \Rightarrow \begin{cases} A\rightarrow \beta A',\\ A'\rightarrow \alpha A'|\epsilon \end{cases} \]

法2:矩阵法

前置知识:

\[I = \begin{pmatrix} \epsilon & \empty\\ \empty & \epsilon \end{pmatrix}\\ A^* = I + AA^* \]

原理:

\[X\rightarrow XA|B\Rightarrow X=BA^* \]

例题

\[S\rightarrow AS|b, A\rightarrow SA|a\\ 解 S=AS+b,A=SA+a\\ (S,A)=(S,A) \begin{pmatrix} \empty & A\\ S & \empty \end{pmatrix} +(b, a)\\ (S,A)\rightarrow (b,a) \begin{pmatrix} \empty & A\\ S & \empty \end{pmatrix}^*\\ 令Z = \begin{pmatrix} \empty & A\\ S & \empty \end{pmatrix}^*, 则 Z=I+ \begin{pmatrix} \empty & A\\ S & \empty \end{pmatrix} Z\\ 则原文法改写为:(S,A)=(b,a)Z\\ Z=I+ \begin{pmatrix} \empty & A\\ S & \empty \end{pmatrix} Z \]

求FIRST集

来点伪代码:

Set FIRST(X){
  ft = ∅; 
  if (X in V_T)  return {X};
  if (X -> ε in P)  ft += {ε}; 
  forEach(X -> Y_1Y_2…Y_k in P ) {
    forEach(Y_i) {
        if (ε in FIRST(Y_i))  {
          ft += (FIRST(Y_i) - {ε});
          if (i == k) ft += {ε};
        } 
        else { 
            ft + = FIRST(Yi); 
            break;
        }
     }
  }
  return ft; 
} 

标签:begin,end,ft,笔记,编译,pmatrix,原理,empty,rightarrow
From: https://www.cnblogs.com/CTing/p/18152808

相关文章

  • 将彩色图转化为灰度图及其原理介绍
    彩色图介绍彩色图像是一种包含颜色信息的图像,通常由红色、绿色和蓝色(RGB)三个颜色通道组成。这三种颜色通道可以叠加在一起来形成各种不同的颜色。彩色图像中的每个像素都有三个数值,分别表示红色、绿色和蓝色通道的强度或亮度。这三个数值通常在0到255之间,其中0代表没有该颜色通......
  • JS基础(二)运算符、流程控制语句、数组对象、JSON对象、Date对象、Math对象、Function对
    一运算符<script>//算数运算符//(1)自加运算varx=10;//x=x+1;//x+=2;varret=x++;//先赋值再计算:x+=1//varret=++x;//先计算再赋值:x+=1console.log(x)......
  • 【Lua】源码编译
    1、准备工作1、下载lua源码在Lua官网下载指定版本的Lua源码。2、下载依赖库readline、ncurses在readline官网下载readline源码;在ncurses官网下载ncurses源码。2、编译readline将readline源码放到环境上并解压。执行以下命令安装./configuremakemakeinstall3、编译ncu......
  • 《自动机理论、语言和计算导论》阅读笔记:p261-p314
    《自动机理论、语言和计算导论》学习第10天,p261-p314总结,总计48页。一、技术总结1.generating&reachable2.ChomskyNormalForm(CNF)乔姆斯基范式。3.pumpinglemma泵作用引理。引理:引理是数学中为了取得某个更好的结论而作为步骤的已证明命题,其意义并不在于自身已完......
  • [笔记]模意义下的除法逆元
    一些题目在涉及到超大整数运算时,往往会要求我们把答案取模一个值,比如\(998244353\)、\(10^9+7\)等等。如果我们的计算只有\(+,-,*\),直接现算现取模即可:(a+b)%mod=(a%mod+b%mod)%mod(a-b)%mod=(a%mod-b%mod+mod)%mod(a*b)%mod=(a*mod-b......
  • C语言学习笔记
    ​学习C语言是掌握计算机科学的基础,并为学习其他高级编程语言打下坚实的基础。C语言是一种高效率的编程语言,被广泛用于系统软件和应用软件的开发。1、C语言基础变量和数据类型:理解基本数据类型(int,char,float,double等)以及更复杂的类型,如数组和结构体。运算符:熟悉C语言支持......
  • C# 学习笔记
    ​  1、C#基础数据类型和变量:学习如何使用基本数据类型(int,double,char,bool等)以及更复杂的类型(数组、枚举、结构体)。运算符:理解各种运算符(算术运算符、比较运算符、逻辑运算符等)的使用。控制结构:学习使用条件语句(if,switch)和循环结构(for,while,do-while,foreach)来......
  • 软考高项(已通过,E类人才)-学习笔记材料梳理汇总
    软考高项,即软考高级信息系统项目管理师,全国计算机技术与软件专业技术资格(水平)考试中的高级水平测试。适用于从事计算机应用技术、软件、网络、信息系统和信息服务等领域的专业人员,以及各级企业管理人员和从事项目管理事业的相关人士。申请杭州E类人才等用途资源整理地址备注......
  • 大营销笔记
    大营销第三节:策略概率装配处理装配流程装配抽奖策略,根据抽奖策略ID(strategy_id)进行装配子流程如下:根据抽奖策略ID(strategy_id)去数据库查询该策略配置下的奖品列表(strategyAwardEntityList),先从redis中读,如果redis中没有,再去数据库中拿,拿完转完一下实体类,存redis中,并返回......
  • Lustre架构介绍的阅读笔记-客户端
    本文是在阅读IntroductiontoLustre*Architecture的LustreFileSystem–Clients时的笔记。Lustre客户端部署在客户的计算节点上,工作时不占用本地的硬盘。不使用本地硬盘作为缓存或者后备空间。对存储系统的访问均通过网络。Lustre客户端作为Linux内核的模块,工作在内核......