【编译原理】
介绍高级语言背后的底层逻辑——编译原理,讲述编程语言“万变不离其宗” 的宗。
TommyMusk
这个作者很懒,什么都没留下…
展开
-
【编译原理】语法分析
为什么需要语法分析? 前面讲到,在分析完一个一个的单词分别代表什么意思后,需要组合起来识别出语法结构。 int a = 5; 比如上面的语句,需要进行语法分析得出它代表一条声明语句。 在语法分析,需要用一种数据结构把这些单词保存起来,这里引入抽象语法树(AST)的概念。 可以参考如下资料了解AST: AST representation in GCC (u-strasbg.fr) 4.3 Building Abstract Syntax Trees in C (uta.edu) 有了A原创 2021-11-18 00:05:44 · 3242 阅读 · 0 评论 -
【编译原理】词法分析
作用:保存一个个单词。 比如:一条C语言语句 int a = 5; 词法分析的作用就是把int 识别出来作为标识符保存;a识别出来作为变量保存;=识别出来作为运算符保存,;识别出来作为语句的结束符保存。 ...原创 2021-11-17 23:58:11 · 4426 阅读 · 0 评论 -
管窥编译器map文件——小文件有大用途
资料整理: map的查看方法查看map中各部分 ram和flash占用空间的方法 查看firmware size的方法 removing libc to reduct fimware size how to write link script原创 2021-11-09 23:50:58 · 371 阅读 · 0 评论 -
GDB调试——跟踪编译器内部实现
参考文章: Conditional Breakpoints and watchpoints | gdb debugger Tutorial and examples – thispointer.com How to Debug Using GDB (baylor.edu) 应用:调试python编译器,跟踪编译器内部实现过程: https://github.com/RichardGong/CompilersInPractice/edit/master/python/GDB.md ...原创 2021-07-18 09:03:39 · 169 阅读 · 0 评论 -
【编译原理】1.编译器的前世今生
1.为什么需要编译器 PC只能识别二进制 0, 1。 程序员为了提高编程效率,发明了高级的编程语言。 借助编译器等工具,把高级语言转译为机器可以识别的语言,最后运行在PC上。 2.编译器是如何工作的 今天我们开始介绍编译器的工作过程。 先看一段用C语言实现加法计算 1+ 1 =2的代码: #include <stdio.h> //头文件 #include <stdlib.h> int main( void ){ int a; a = 1 + 1;原创 2021-06-13 17:10:56 · 468 阅读 · 0 评论