编译原理(龙书)读书笔记

编译原理(龙书)读书笔记

一、总结

​ 编译原理主要讲述高级语言怎样通过一系列的转换和优化后生成机器语言的一门课程,学习编译原理后将会对整个编译流程和代码处理细节有更近一步的理解,后续如果需要更加一步的了解编译器工作的流程,建议配合链接器的相关资料进行阅读,市面上主推的有两本书《link and loader》和《程序员的自我修养》。

二、详细内容

编译器主要四个个步骤分别是:

  1. 词法分析;
  2. 语法分析(中间代码生成);
  3. 中间代码优化;
  4. 汇编;

下面将按照这四个步骤分别进行阐述:

2.1 词法分析

​ 词法分析主要是为了识别高级语言中的关键字,常量,变量名,并将其信息保存在一个词法分析字典中再用一个词法单元对其进行索引,主要的识别算法就是NFA 和 DFA 两种实现方式,其中DFA是用来逻辑表示字符匹配的方法,最终代码实现是会将NFA 转为DFA 进行实现的,下面将列出几种和NFA和DFA之间的算法:

算法名 描述
子集法 将NFA转换为DFA
DFA最小化 将DFA化简为中间状态最少的DFA

2.2 语法分析

​ 语法分析就是将词法分析后产生的词法单元,按照产生式的格式进行匹配并在匹配的过程中生成中间代码(一般生成的中间代码都不是汇编代码,通常都是四元式)·,语法分析主要实现算法和

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值