编译原理概述
编译原理概述
思维导图
- 编译原理入门
- 基本概念
- 机器语言
- 汇编语言
- 高级语言
- 编译器结构
- 词法分析器
- 语法分析器
- 语义分析器
- 中间代码生成
- 机器无关代码优化器
- 目标代码生成器
- 机器相关代码优化器
- 程序运行时的逻辑存储空间
- 代码区
- 数据区
- 静态数据区(全局数据区)
- 动态数据区
- 堆区
- 栈区
- 分配规则
- 动态存储分配
- 堆式存储分配
- 栈式存储分配
- 静态存储分配
相关概念
编译逻辑过程
语法
合法的程序(语言的合法性),定义什么样的符号系列是合法的。主要侧重结构是否完整。
如: A:=B+C (编译时,语法正确)
A := B+ (编译时,语法错误)
符号串
字母表中的符号组成的任意有穷系列。
字符的运算
符号串特性
顺序:ab与ba不同
长度
eg:
头尾
- 前后缀
固有头
- 真前缀
固有尾
- 真后缀
eg:
乘积
连接
幂
字母表的闭包:字母表中字符形成的有穷长的串的集合
- 正闭包
- 克林闭包
- 正闭包
规则
文法
语言描述规则,用来定义句子的结构,用有限的规则把语言的全部句子描述出来,是以有穷的集合刻划无穷的集合的工具。
以一种形式(文法)给出无穷多句子的有穷表达;
eg:
文法的表示
四元组形式
eg:
符号的约定
推导
- 直接推导
- 长度为n的推导(n>0)
- eg:
- 直接推导
句子和句型
句型的短语
eg:
语法范畴(非终结符)A的集合
文法G生成的语言
eg:
文法的等价性
文法的分类
0型文法
1型文法
eg:
2型文法
语法树
eg:
3型文法
四种文法之间的关系
最左(最右)推导、规范推导
语法树和推导的作用: 句型的分析
定义
算法分类
- 定义
自上而下的语法分析
自下而上的语法分析
句型分析的有关问题
自顶向下方法中的主要问题
自底向上方法中的主要问题
文法二义性
定义
eg:
消除二义性
- 定义
消除二义性
文法实用中的一些说明
上下文无关文法中的ε规则
文法的多余规则
左递归
- 定义
- 消除左递归
- eg
- 定义
正则表达式
定义
正则式等价
正规式、它所表示的正规语言/正规集
eg
正则文法和正则式的等价性
正则文法转正规式
正则式转正规文法
有穷自动机
定义
确定的有穷自动机DFA(Determinstic Finite Automata,DFA)
定义
eg
DFA状态转换图表示
eg:
正则式转换为DFA状态转换图
规则和定义
正则式转DFA的过程
eg:
正则文法 构造DFA状态转换图
规则和定义
eg:
三个重要定义
首符号集FIRST
定义
eg
后随符号集FOLLOW
- 定义
- eg
选择集合SELECT (重要:补充的定义)
- 定义
- eg
练习题
编译原理概述
http://example.com/2023/06/27/编译原理概述/