编译原理复习学记

第一章 引论

1、编译原理由那些部分组成

  • 编译系统由那些部分组成(七大步骤)
    在这里插入图片描述

在这里插入图片描述

  • —(字符流)— 词法分析器 ----(记号流)–> 语法分析器 ----(语法树)—> 语义分析器 -----(语法树)—> 中间代码生成器 -----(中间表示)—> 独立于机器的代码优化器 -----(中间表示)----> 代码生成器 -----(目标机器代码)------> 依赖于机器的代码优化器 -----(目标机器代码)

词语义中代生 (符号表管理 出错管理)

在这里插入图片描述

第二章 词法分析

1、正闭包与闭包

  • L+ 与 L*
    在这里插入图片描述

2、正规式的定义

  • 正规式表示的语言叫做正规语言正规集
    如果约定
  • (1)闭包运算(算符是 * )有最高的优先级并且是左结合的运算
  • (2)连接运算(两个正规式并列)的优先级次之且也是左结合的运算
  • (3)选择运算(算符是 | )的优先级最低且仍然是左结合的运算

那么可以避免正规式中一些不必要的括号。例如,((a)(b)*)|( c )等价于 ab*|c

3、状态转化图

在这里插入图片描述
算法2.4

自顶向下方法

递归下降分析

在这里插入图片描述

预测分析

在这里插入图片描述

文法转换

  • 含有A→Aα形式产生式的文法称为是直接左递归

  • 如果一个文法中有一个非终结符A使得对某个串α存在一个推导A =>+Aa那么这个文法就是左递归

  • 经过两步或两步以上推导产生的左道归称为是间接左递归的

左递归文法会使递归下降分析器陷入无限循环

消除直接左递归

在这里插入图片描述

消除间接左递归

在这里插入图片描述

提取左因子

在这里插入图片描述
提取左因子算法
在这里插入图片描述

LL(1) 文法

在这里插入图片描述
非终结符的后继符号集

在这里插入图片描述

终结符与非终结符

终结符

  1. 字母表前面的小写字母 a,b,c
  2. 黑体串 idwhile
  3. 数字 1,2,3,4
  4. 标点符号 分号,短号
  5. 运算符号 + -

非终结符

  1. 字母表前面的大写字母 ABC
  2. 字母 S 通常表示开始符号
  3. 小写字母组成的名字 exprstmt

在这里插入图片描述

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

计算文法的 FIRST集合

在这里插入图片描述

计算文法的 FOLLOW集合

在这里插入图片描述

计算文法的 SELECT集合

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

自上而下分析

非递归的预测分析

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

  • 每次归约的符号串称为“句柄”

LR 分析文法

在这里插入图片描述
LR 分析表

在这里插入图片描述
LR分析表的构造 讲解视频

LR 分析表的构造

LR(0)项目
在这里插入图片描述
在这里插入图片描述

构造分析表
在这里插入图片描述

  • 移进 / 规约冲突 移进/ 移进 冲突

I 3 内的同属等价项目

SLR 分析

在这里插入图片描述

SLR 构造讲解视频 7:35

SLR 例子
在这里插入图片描述
在这里插入图片描述

P133

4.12

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

指令代价

P245

在这里插入图片描述

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值