编译原理总结(《编译与反编译技术》)

思维导图

在这里插入图片描述

引论

什么是编译程序?

把某一种高级语言程序等价的转换成另一种低级语言程序的程序

编译过程都包括哪些阶段?

词法分析、语法分析、语义分析与中间代码生成、中间代码优化、目标代码生成

画出编译程序的结构框图.

符号表管理程序——词法分析器 ————————错误处理程序
语法分析器
语义分析+中间代码生成器
优化器
目标代码生成器

编译程序和解释程序的区别是什么?

解释程序或者直接一边解释一边执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行。控制权在解释器;
编译程序则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序,控制权在目标程序。

遍和阶段的概念,为什么要用遍?

遍:对源程序或中间表示从头到尾扫描一次,并作有关的加工处理,形程新的中间结果或目标程序
一遍可有若干阶段,一个阶段可有若干遍
分成若干遍为了让程序结构更清晰,使程序可读性更强。

词法分析

单词分类、词法分析的输入输出

分类:基本字、标识符、常数、运算符、界符
输入:源程序 输出:单词符号

单词构词规则

表示形式:单词种别+单词符号属性值
单词种别常用整数编码表示:

1、若一个种别只有一个单词符号:
则种别编码就代表该单词符号,
一般来说,基本字、运算符和界符都是一符一种。·若一个种别有多个单词符号,

2、若一个种别多个单词符号:
则对于每个单词符号,给出种别编码和属性信息。
标识符单列一种:属性就是存放它的有关信息的指针。
常数按类型分种:常数的值则表示成标准的二进制形式。

文法和语言的概念及其相互推导

语言:一个字母表的任意子集L称为该字母表的一个语言,语言中的一个值称为一个句子。
文法:用来描述语言语法结构的形式规则。
文法的语言:文法产生的所有终结符串构成的集合。

最左和最右推导,求语法树

最左推导:每次替换最左非终结符
最右推导:每次替换最右非终结符

语法树:每个节点是Vt、Vn,根节点是S、叶子节点是Vt

二义性问题

文法二

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值