编译原理概述
编译原理概述
思维导图
- 编译原理入门
- 基本概念
- 机器语言
- 汇编语言
- 高级语言
- 编译器结构
- 词法分析器
- 语法分析器
- 语义分析器
- 中间代码生成
- 机器无关代码优化器
- 目标代码生成器
- 机器相关代码优化器
- 程序运行时的逻辑存储空间
- 代码区
- 数据区
- 静态数据区(全局数据区)
- 动态数据区
- 堆区
- 栈区
- 分配规则
- 动态存储分配
- 堆式存储分配
- 栈式存储分配
- 静态存储分配
相关概念
编译逻辑过程
语法
合法的程序(语言的合法性),定义什么样的符号系列是合法的。主要侧重结构是否完整。
如: 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/编译原理概述/













































