编译原理复习

这篇博客详细介绍了编译原理,涵盖了从编译程序的概述、上下文无关文法和形式语言,到有穷自动机与正则表达式的基础理论,再到自上而下和自下而上的语法分析方法。此外,还讨论了语法制导翻译、中间代码生成、符号表管理、运行时存储空间组织以及编译程序的优化技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、编译程序的概述

二、上下文无关文法和形式语言

.1文法

.2文法和语言的形式定义

三、有穷自动机与正则表达式理论基础

.1正规式与有限自动机的转化

2.1词法分析及状态转化图

2.2确定的有限自动机

2.3非确定的有限自动机

2.4 非确定有限自动机的确定化--子集构造法

2.5 DFA最小化

四、自上而下语法分析

.1 消除左递归

.2 FIRST、FOLLOW集的构造

.3 LL(1)预测分析法

五、自下而上语法分析

.1 定义

.2 算符优先文法

.3 算符优先语法分析

.4 LR语法分析方法基本思路

.5 构造识别规范句型活前缀的NFA

.6 构造识别规范句型活前缀的DFA

.7 LR(0)语法分析

.8 SLR(1)语法分析

.9 LR(1)语法分析

六、语法制导翻译和中间代码

.1属性文法

.2中间代码及其表示方法

.3数组元素的翻译

.4条件语句的翻译

.5循环语句的翻译

七、符号表

.1符号表的组织及其作用

.2符号的整理与查找

.3名字的作用范围

八、运行时存储空间组织

.1运行时存储器的划分

九、优化

.1局部优化

.2循环优化

.3数据流分析


一、编译程序的概述

1.编译程序的组成和功能

2.编译程序的过程

二、上下文无关文法和形式语言

.1文法

1.文法的基本知识

语言的文法是一种规则,包含词法规则和语法规则

词法规则:描述语言单词符号构成的规则。

语言的单词符号包括:标识符、常数、运算符等。

描述工具通常为:正规文法(正规式、有限自动机)

语法规则:描述语言语法单位构成的规则。

语法单位包括:表达式、语句、函数、过程。

描述工具:上下文无关文法。

.2文法和语言的形式定义

1.推导和归约

2.规范推导和规范归约

规范推导是最右推导,即每一步替换最右边的非终结符,而最右推导对应于最左归约,或者规范归约。每一个句型不一定都有规范推导。

3.句型和句子

根据产生式推导得出的符号串叫句型,如果这个符号串包含终结符叫句子。

规范推导所得的句型成为规范句型(最右句型)

4.语言

文法产生的所有句子的集合,称为文法所定义的语言

5.形式语言理论可以证明的两点:

(1)给定一个文法可以从结构上唯一的确定其语言。

(2)给定语言可以确定其文法,但其文法不是唯一的。

6.语法树和等价文法

语法树展示了句子的语法结构,也体现了其推导的过程。

两个不同的文法,推导出来的语言相同,称为等价文法。

7.递归产生式和递归文法

含有递归产生式的文法称为递归文法

递归文法定义的语言集是无穷的,即递归文法可用有穷的产生式来描述无穷的语言。

8.文法二义性

一个句子对应两个不同的语法树

9.文法

文法是描述语言结构的形式规则

4种类型:0、1、2、3型

3型:正则文法,描述程序语言词法的有效工具

2型:上下文无关文法,描述程序语言语法的有效工具。

三、有穷自动机与正则表达式理论基础

.1正规式与有限自动机的转化

正规式转化为nfa的三种替换规则:

步骤:

1.正规式转化为状态转化图

2.状态转换矩阵

3.简化后重命名的状态转换矩阵。

nfa转化为正规式方法示例:

2.1词法分析及状态转化图

1.词法分析的主要工作:

从左到右扫描源程序,一次读一个字符,根据词法规则将有关字符组合成单词,识别各类单词,确定单词类别后,将单词输出。

2.词法分析过程中其他任务:

~过滤注释和空白

~记录读入字符的行号,以便发现错误后报告出错位置;

~进行预编译工作(宏展开)

~符号表操作

~错误处理

3.超前搜索:

为了进一步判断情况,采取前假读字符的方法,最近向前读取字符和判别字符是什么,不马上处理,明确情况后再回来处理已读过的字符。

4.单词的输出:

(1)单词的种类:

用整数编码表示:

标识符为一类,常数按类型分类;关键字一字一类,或全体定为一类,界符作为一类,或一符一类

标识符:字符串编码或对应地址

常数:其自身值的二进制形式

关键字:内部整数编码或串编码

状态转换图

许多程序设计语言的单词可以用正则文法描述,这样的语言使用状态转换图可以设计词法分析程序。

能被状态转换图(TG)接受的符号串的集合记为L(TG),称为状态转换图能识别的语言。

2.2确定的有限自动机

正则文法可以用状态转换图非形式的进行表示,这表明正则文法所对应的语言(正则语言)可以用状态转换图来接受。

有限自动机是对状态转换图进一步形式化对结果。

对扫描器对构造,特别是对扫描器对自动生成将带来很大方便。

1.定义

一个有限自动机是一个五元组:

DFA M=(S,Z,f,S0,F)

(1)S是一个非空有限集,每一个元素称为一个状态

(2)Z是一个有限的输入字母表,每一个元素称为一个输入字符

(3)f转换函数

(4࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值