第一章 是基本概念,读完这一章是为了有个基本了解,这一章是很容易顺利读完的 第二章 这一章介绍了书中很多重要的东西。这一章虽然也有些难理解的地方,但是跟后面比还是容易很多,很多东西都很基本,对编译系统有个基本的理解。 第三章 词法分析 相比较语法分析,词法分析相对比较简单,就是一个自动机 ...
编译原理学习笔记 Thompson算法由正规式构造NFA 例如:求正规式 的NFA 首先将正规式r 分解成r r ,r r 将r ,r 展开得: 不确定有穷自动机 NFA 一个不确定的有穷自动机T是一个五元组,M K, ,f,S,Z K是一个有穷集他的每一个元素称作一个状态。 是一个字母表,他的每一个元素称为一个输入符号。 f是一个从Kx 到K的子集映射即K gt K,其中 K表示K的幂集。 S包 ...
2014-12-30 17:23 1 7813 推荐指数:
第一章 是基本概念,读完这一章是为了有个基本了解,这一章是很容易顺利读完的 第二章 这一章介绍了书中很多重要的东西。这一章虽然也有些难理解的地方,但是跟后面比还是容易很多,很多东西都很基本,对编译系统有个基本的理解。 第三章 词法分析 相比较语法分析,词法分析相对比较简单,就是一个自动机 ...
这几天忙着学英语,同时在学习编译原理,对这门课很感兴趣,已经制作了词法分析器,同时还在补充这个分析器的功能,也准备着手开始写语法分析器,看到最后能不能连在一起,我想如果能够将整套编译器的流程跑下来真的很棒呢,看比尔盖茨那年龄都写出BASIC了,真是觉得与大牛差距太大,一定要追赶 ...
词法分析的任务: 首先,从阶段上来看,编译器可分为若干个中间阶段: 典型的,可以包含为一个前端,一个后端。前端接收源程序产生一个中间表示,后端接收中间表示继续生成一个目标程序。所以,前端处理的是跟源语言有关的属性,后端处理跟目标机器有关的属性。 更细节的,前端可以划分 ...
错误处理 说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记。 1. 目标:编译程序对于语法和语义正确的源程序要正确地编译生成等价的目标代码;而对于错误的源程序不能一发现就停止,而是要能检查出错误的性质和出错位置,并使编译能继续下去,同时尽可能多而准确地发现错误和指出各种错误 ...
代码优化 以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记。 概述 .1. 目的:提高目标代码运行效率。时间效率(减少运行时间);空间效率(减少内存容量)。 原则:进行优化必须严格遵循“不能改变原有程序语义”原则。 2. 优化的分类 从优化的层次,与机器是否有关,分为:独立 ...
1 目的 语法分析是根据源语言的语法规则从源程序记号序列(词法分析阶段的输出)中识别出各种语法成分,同时进行语法检查,为语义分析和代码生成做准备。 2 方法 对记号序列自左向右扫描,每次 ...
自顶向上分析方法 1 思想 简单来说就是试图从输入符号串出发,将其直接作为叶子结点,然后向上构造出一棵分析树。从树根到叶子叫展开,而从叶子回树根就叫归约。所以这种方法的关键在于查找当前句型的可 ...
同事搓蛋问了我一个问题,mock的原理是啥,没怎么想出来,于是花了点时间学习了一下。 从Moq这个库入手:https://github.com/moq/moq4 Moq用到了Castle的库用于DynamicProxy的生成和interception,Castle还有IOC的功能,因为每次 ...