编译原理之美
手把手教你实现一个编译器
宫文学  北京原点代码 CEO
专栏
已完结·共 45 讲
|
4.6w 人已学
|
收藏
首先匹配是不是整型字面量,发现不是;
来自:03 | 语法分析(一):纯手工打造公式计算器
8 人划过
对于左结合的运算符,递归项要放在左边;而右结合的运算符,递归项放在右边。
来自:04 | 语法分析(二):解决二元表达式中的难点
6 人划过
这些生成工具是基于一些规则来工作的,这些规则用“正则文法”表达,符合正则文法的表达式称为“正则表达式”。生成工具可以读入正则表达式,生成一种叫“有限自动机”的算法,来完成具体的词法分析工作。
来自:01 | 理解代码:编译器的前端技术
6 人划过
静态类型和动态类型说的是什么时候检查的问题,强类型和弱类型说的是就算检查,也检查不出来,或者没法检查的问题
来自:11 | 语义分析(上):如何建立一个完善的类型系统?
5 人划过
很多国外厂商的软件,普遍都具备二次编程能力,比如 Office、CAD、GIS、Mathematica 等等。德国 SAP 公司的企业应用软件也是用自己的业务级语言编写的。目前来看,谷歌也好,苹果也好,微软也好,这些技术巨头们的核心能力,都是拥有自己的语言和生态。可见编译技术有多么重要!
来自:开篇词 | 为什么你要学习编译原理?
4 人划过
手工打造词法分析器的过程,就是写出正则表达式,画出有限自动机的图形,然后根据图形直观地写出解析代码的过程。
来自:02 | 正则文法和有限自动机:纯手工打造词法分析器
4 人划过
时,我们分析了词法冲突的问题,即标识符和关键字的规则是有重叠的。Antlr 是怎么解决这个问题的呢?很简单,它引入了优先级的概念。在 Antlr 的规则文件中,越是前面声明的规则,优先级越高。所以,我们把关键字的规则放在 ID 的规则前面。算法在执行的时候,会首先检查是否为关键字,然后才会检查是否为 ID,也就是标识符。
来自:06 | 编译器前端工具(一):用Antlr生成词法、语法分析器
3 人划过
优先级是通过右侧不同产生式的顺序决定的。在标准的上下文无关文法中,产生式的顺序是无关的,但在具体的算法中,会按照确定的顺序来尝试各个产生式。
来自:07 | 编译器前端工具(二):用Antlr重构脚本语言
3 人划过
就是针对上下文相关的情况做处理
来自:12 | 语义分析(下):如何做上下文相关情况的处理?
3 人划过
比如高速缓存、内存、磁盘、网络的 IO 大致都是什么数量级的。因为这都影响到系统的整体性能,
来自:21 | 运行时机制:突破现象看本质,透过语法看运行时
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
免费试读
讲师

宫文学

北京原点代码 CEO

宫文学,北京原点代码 CEO,连续创业者,2016 年入选厦门市第九批“双百计划”领军型创业人才。他是国内最早做 BPM(流程管理平台)和 BI 平台(大数据平台)的创业者之一,之后也做过电子表单和快速开发平台,这些经历都与编译技术密不可分。
编辑推荐
讲师的其他课程
编译原理实战课
宫文学
北京原点代码 CEO

55讲 | 26079 人已学习

¥59¥129
手把手带你写一门编程语言
宫文学
北京原点代码 CEO

49讲 | 7539 人已学习

¥59¥129
包含这门课的学习路径

计算机基础知识

12门课程 96.5w人学习
看过的人还看了
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283805 人已学习

¥68¥199
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 181001 人已学习

¥98¥399
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 224938 人已学习

¥68¥199
趣谈网络协议
刘超
前网易研究院云计算技术部首席架构师

51讲 | 130453 人已学习

¥68¥199
深入浅出计算机组成原理
徐文浩
bothub 创始人

62讲 | 70443 人已学习

¥68¥199
趣谈 Linux 操作系统
刘超
前网易杭州研究院云计算技术部首席架构师

72讲 | 85481 人已学习

¥68¥199