【编译原理】期末预习PPT前四章笔记II

发布时间:2024年01月04日

?看了看学校的ppt,记的比较随意O.o?

?因为我的考试范围里边没有简答所以概念什么的没怎么记?

?没有简答只有选择真是太好了嘿嘿嘿?

目录

I. 概述(好多字。。)

一、高级语言的分类

1、体裁

2、执行方式

二、各种语言的执行方式

三、编译程序和解释程序的区别(看看区别O.o)

四、编译程序的功能

1、翻译

2、纠错

五、编译程序的组成(熟悉一下避免选择选不明白O.o)

1、词法分析

2、语法分析

3、语义分析

4、中间代码生成

5、中间代码优化

6、目标代码生成

六、编译程序的组织方式

七、编译程序的复杂性

II. 文法和语言

一、语言成分(好多定义O.o应该看看就行)

二、文法

1、定义

2、推导

3、Chomsky分类(没记得老师讲过O.o,不过还是看看吧)

4、语言(大题:文法 ←→ 语言)

5、语法树

1)特点(没啥用)

2)二义性

3)推导方式

6、分析方法

III、词法分析

一、概述(看看就行)

1、功能

2、任务

二、DFA 和 NFA(需要看课本)

1、DFA

2、NFA

3、NFA 转成 DFA(要出大题但是ppt没看懂。。需要看课本)

三、自顶向下(主要看了LL(1)文法)

1、first 集

2、follow 集

3、select 集

4、LL(1)

1)条件:同一左部的 select 无交集

2)转换

①提公因子(必要非充分,提完去掉没用的,有的提不了)

②消左递归(直接间接)

3)LL(1) 与递归下降


I. 概述(好多字。。)

一、高级语言的分类

1、体裁

过程式(怎么做),逻辑式(做什么),函数式(数学证明),面向对象(如Java)

2、执行方式

顺序,并行

二、各种语言的执行方式

三、编译程序和解释程序的区别(看看区别O.o)

四、编译程序的功能

1、翻译

将源程序翻译成机器能识别的目标代码程序

2、纠错

检测源程序中可能出现的各种错误,包括:词法错误,语法错误,语义错误等

五、编译程序的组成(熟悉一下避免选择选不明白O.o)

1、词法分析

输入高级语言源程序,识别源程序中的单词,并把单词转换成内部表示形式,同时检测程序中的词法错误。(?把高级语言程序转换成单词序列,检测词法错误?

2、语法分析

检测源程序中的语法错误,即检测程序中语法结构存在的错误。

3、语义分析

构造符号表,并检测程序中的语义错误

4、中间代码生成

将源程序翻译成与机器无关的中间表示形式。中间代码是高级语言与目标语言之间的桥梁不依赖于目标语言,有利于进行与目标机无关的代码优化,也有利于编译程序的重定位移植

5、中间代码优化

中间代码的优化以便产生高质量的目标代码。

6、目标代码生成

可以是汇编语言程序,也可以是机器代码程序。

六、编译程序的组织方式

七、编译程序的复杂性

1、编译程序是元级程序

2、编译程序要面对所有源语言程序,所以要面面俱到,考虑周全

3、高级语言和低级语言是不同级别的语言,二者的差异很大

4、编译程序是计算机系统中最重要的系统软件之一,其可靠性和优化方面的要求均很高

II. 文法和语言

一、语言成分(好多定义O.o应该看看就行)

字母表:符号的有穷集合,符号用以构成语言中的句子。

文法:结构规则的有穷集合,定义句子中符号的合法上下文。

语义:操作规则的集合,定义了程序在计算机上执行的操作效果。

二、文法

1、定义

是定义语言语法结构的一组形式规则(语法规则),可以将语言的所有成分描述出来。

2、推导

一步直接推导 好多步叫推导

3、Chomsky分类(没记得老师讲过O.o,不过还是看看吧)

4、语言(大题:文法 ←→ 语言)

5、语法树

1)特点(没啥用)

2)二义性

某个句子存在两颗不同语法树,即:一个句子有两种推法

3)推导方式

最左 → 推的时候从左边第一个开始换

最右(规范) → 从右边第一个开始换

6、分析方法

III、词法分析

一、概述(看看就行)

1、功能

从左到右逐个字符地对源程序进行扫描,产生单词序列,用于语法分析。

2、任务

二、DFA 和 NFA(需要看课本)

1、DFA

图例(不熟的话可以看看),例图可以看看书,ppt上画的有点。。丑

2、NFA

3、NFA 转成 DFA(要出大题但是ppt没看懂。。需要看课本)

三、自顶向下(主要看了LL(1)文法)

1、first 集

直接看例题,找所有第一个小写字母

2、follow 集

后边的first,后边是空就把左边的follow加进去

3、select 集

4、LL(1)

1)条件:同一左部的 select 无交集

2)转换
①提公因子(必要非充分,提完去掉没用的,有的提不了)

②消左递归(直接间接)

?刚开始还因为B'有个空看了半天。。后来问了大佬懂了。笨死我算了 O.o?

因为 B→ X]或BA,所以B'空相当于B → X]

3)LL(1) 与递归下降


前四章看完了,还有挺多盲区。。等看完后边四章再看看课本去Orz

文章来源:https://blog.csdn.net/weixin_61096287/article/details/133777197
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。