编译原理考点梳理
期末考试对一些重点内容的梳理总结,希望能帮助到需要的小伙伴。
keep me far away everything i love
keep me far away everyone i know
i’m nothing campared to who uesd to be
words of song Homesick ,belong Flower Face
参考
B站视频链接 > 老师讲课通俗易懂。
Blog
链接1
链接2
编译原理第三版《陈意云》
习题:
- 机试题
符号和名词⚽⚽⚽
| 代表 | 意义 | 备注 |
|---|---|---|
| ∑ | 基本字母表 | 字母表中无 ε |
| ∪ | 并集 相当于 | |
| L* | L的闭包 | 0个或多个L连接的并集, r** = r* |
| L+ | L的正闭包 | 一个或多个L的连接的并集 |
| LM | L连接M,有顺序 。rs | (rs)t = r(st) |
| ε | 空串,长度为0的特殊串。_e_是连接的恒等元素 | er = r; re =r , r* = (r |
| 词法记号 | 二元组合集 <记号名,属性值> | 即词法分析器所输出的 |
| 模式 | if for esle | |
| 词法单元 | age ,100, | |
| 名字和符号 | 为区分二者,使用黑体表示名字 | |
| [abc], [A-z] | [abc]代表 a | b |
| 一元运算符 ? | 零个或一个实例 ,r?是r | ε的缩写 |
| 一元运算符 + | 一个或多个实例 | |
| 保留字 | 是语言预先确定了含义的词法单元 | |
| 标准标识符 | 也是预先确定了含义的标识符,但程序可以重新声明它的含义 | |
| 正规集 | 正规式表示的语言叫做正规集或正规语言。 |
重点内容🎇🎇🎇
第一章 绪论
什么是编译型和解释型语言?
编译型:先编译后执行
- 把高级语言程序翻译成机器语言程序运行所得机器语言程序求得计算结果
- 翻译程序,编译程序口
解释型:解释执行
- 边解释边执行
- 解释程序
编译型:运行前先应泽器将高级语言代码编泽为对应机器的cpu汇辑指令集,曲汇绸器汇编为目标机器码,生成可执行文件,然最后运行生成的可执行文件。最典型的代表语言为C/C++,一般生成的可执行文件及.exe文件
解释型:在运行时由翻器将高级语言代码翻译成于款行的中间代码,并由解释器(例如浏器、虚拟机)速一将该中间代码解释成机器码并执行(可看做是将编解、运行合二为一了),最典型的代表话言为 Javascript、 Python、Ruby和Perl等
翻译器,编译器,解释器?
能够完成从一种语言到另一种语言的保语义变换的软件称为翻译器
编译器是一种翻译器,它的特点是目标语言比源语言低级
解释器是不同于编译器的另一类语言处理器。 解释器不像编译器那样通过翻译来生成目标程序,而是直接执行源程序所指定的运算。解释器也需要对源程序进行词法分析、语法分析和语义分析等,这样它才有可能知道源程序制定了一些什么运算。
解释执行效率低的原因?
- 对于编译方式来说,对源程序的词法分析、语法分析和语义分析只要进行一次。
- 对于解释执行来说,每次执行到源程序的某个语句,都要对它进行一次词法分析、语法分析和语义分析,确定了这个语句的含义以后,才能执行它指定的运算。
编译器的各个阶段?

- 词法分析:将源程序代码的字符流转成记号流 。记号流就是个二元组(表示符号的时候是单个的)。** 字符流—记号流**
- 语法分析(syntax analysis)**检查记号流是否符合编程语言的规则,然后根据编程语言规则用记号的第一元建立一种树形中间表示。典型的中间表示是语法树。**记号流—树形中间表示(语法树)
- **语义分析 使用语法树和符号表,根据语言的定义检查源程序之间的语法一致性。确保各部分都能组合。另外还进行类型检查。**语法树—更低级的中间代码表示。
- 独立于机器的代码优化 优化代码。速度快或者功耗低。
- 代码生成是指源程序的一种中间表示作为输入并把它映射到一种目标语言。
如果目标语言是机器代码,则需要为源程序所用的变量选择寄存器或内存单元,然后把中间指令序列翻译为完成同样任务的机器指令序列
第二章
(1)词法分析器的相关概念
- 构造词法分析器可以用状态转换图来描述词法记号的结构,然后手动把这些状态图翻译成为识别词法记号的程序。
- 任务:把源程序的字符流翻译成词法记号流。
•词法分析器的任务是把构成源程序的字符流翻译成词法记号流。
•构造词法分析器的一种简单办法是用状态转换图来描述元词法记号的结构,然后手工把这种状态转换图翻译成为识别词法记号的程序。
词法记号 :二元组合集
模式: if for esle
词法单元: age ,100,
// 都是为了能够识别出具有特定意义的整体。而非一个一个的被分割。
>>
关键字、保留字和标准标识符的区别
•保留字是语言预先确定了含义的词法单元
•标准标识符也是预先确定了含义的标识符,但程序可以重新声明它的含义
>>
大多数词法错误是多、漏或错一个字符、或相邻的两个字符错位。(无法发现。可以

本文深入解析编译原理,涵盖编译型与解释型语言对比,编译器工作流程,词法与语法分析,以及上下文无关文法等关键概念。提供详尽的考点梳理,适合备考与自学。
最低0.47元/天 解锁文章
1760





