当前位置: 首页 > news >正文

编译原理笔记

我是标题

    • 1.编译原理流程
    • 2.推导的定义
    • 3.句型,句子定义
    • 4.文法的几种类型
    • 5.短语
    • 6.给定语法写出文法以及给定文法写出语法。
    • 7.消除左递归
    • 8.消除回溯
    • 9.NFA
  • 自上而下分析法
    • 10.first集follow集
    • 11.预测分析表
    • 12.LL(1)
    • 13.LL(1)的输入串分析
  • 自下而上分析法
    • 13.LR(0)

1.编译原理流程

在这里插入图片描述

2.推导的定义

在这里插入图片描述
在这里插入图片描述

3.句型,句子定义

在这里插入图片描述

4.文法的几种类型

在这里插入图片描述
二型文法也叫上下文无关文法
在这里插入图片描述

5.短语

在这里插入图片描述

句柄为一棵树最左侧直接短语,在上图中为P。
直接短语是再无分支的叶子节点。
在这里插入图片描述

6.给定语法写出文法以及给定文法写出语法。

在这里插入图片描述
在这里插入图片描述

7.消除左递归

在这里插入图片描述
在这里插入图片描述

8.消除回溯

在这里插入图片描述

9.NFA

在这里插入图片描述

自上而下分析法

10.first集follow集

在这里插入图片描述

first求法例如
找X的first集合,就看这个字母产生式右边的第一个,如果是终结符就写入,如果是非终结符就继续往下。
在这里插入图片描述
follow集的求法:
1.如果是起始符加上‘#’。
2.如果这个集合右侧为空则等于箭头左侧的Follow集合。
3.如果这个集合的右侧为终结符直接写入。否则他的Follow集合是右侧非终结符的first集合去掉空串。
4.如果右侧非终结符能直接推导到空串,那么要加入Follow右侧集。
在这里插入图片描述
例子
在这里插入图片描述

11.预测分析表

在这里插入图片描述

12.LL(1)

13.LL(1)的输入串分析

1.要点:产生式反着压,转换为终结符,并且尽量往输入符号凑。
在这里插入图片描述

自下而上分析法

13.LR(0)

在这里插入图片描述
1.拓广文法:
用S‘ 指向它本身,并且吧有或(|)的产生式分离开来,标上序号。
2.画活前缀DFA
从开始符号进行第一次规约/移进
如果移进后,点右侧是非终结符,则把上一个状态的该字母产生式全部写入。
如果这个状态到下一个状态重复了那么将箭头指向自身。
在这里插入图片描述
3.引入SLR(1)
可以发现I4和I5发生了移进和归约的冲突。

4.填表
ACTION下放终结符和#。
GOTO下放非终结符。
左侧0-i个State。
1 / # 位置固定为 acc。
通过观察DFA。
I0通过a可以到达状态4填入S4。
I0通过S可以到达状态1填入1。
如果Ix是归约式子,在对应产生式右侧的Follow集合下方填入rx。
任何状态下的归约式子都要如此操作。
I2是归约式子,在对应产生式右侧的Follow集合下方填入r2.
在这里插入图片描述
5.分析表
规则:
1.状态栈顶和余串栈顶查表找Action,在下一行写入状态栈,符号站,余串出栈。
2.如果Action为ri,那么通过初始产生式将现有符号栈归约。
比如步骤3:
5和d匹配查表得到r6,那么将现有符号栈匹配产生式6进行归约,归约了几个符号那么状态对应出栈几位。
结果为 05 #bB d#
那么将5和B匹配找到GOTO为7,填入下一个状态。
于是为057 #bB d# GOTO 7。
直到ACTION为acc。
Ri看归约结果,Si看剩余输入串。
于是有
在这里插入图片描述

初始状态
在这里插入图片描述
结束状态

在这里插入图片描述

相关文章:

  • 【Linux跬步积累】—— 网络编程套接字(二)
  • 有声书画本
  • 豪斯多夫距离 (Hausdorff Distance)在机器人轨迹规划中的应用
  • 单片机内部结构基础知识 FLASH相关解读
  • 《0/1背包》题集
  • pyocr 取发票文本信息(图片)
  • C++11 右值引用:从入门到精通
  • (转)什么是DockerCompose?它有什么作用?
  • 沉金电路板工艺全解析:关键技术要点与行业应用实践
  • helm与chartmuseum安装
  • CSS 定位:原理 + 场景 + 示例全解析
  • 30.【新型数据架构】-区块链数据架构
  • 【办公类-104-01】20250606通义万相50分一天用完,通义万相2.1专业版测试
  • 软考 系统架构设计师系列知识点之杂项集萃(83)
  • MIT 6.S081 2020 Lab7 Multithreading 个人全流程
  • 【Go面试陷阱】对未初始化的chan进行读写为何会卡死?
  • Python打卡DAY46
  • 全生命周期的智慧城市管理
  • C++ const 修饰符深入浅出详解
  • CVPR 2025 | 港中文 MMLab 提出文生图模型 T2I-R1,文生图进入R1时刻!
  • 网站建设 cms 下载/百度竞价推广专员
  • 一个seo良好的网站其主要流量往往来自/聚合搜索引擎
  • 济南城市建设学院网站/网络推广业务
  • wordpress+增加域名/seo视频网页入口网站推广
  • 做电影网站如何规避版权/qq群推广软件
  • 建站快车金牌代理商/长沙哪家网络公司做网站好