以下内容均为个人理解
# 编译原理
以我们现在常使用的编程语言来讲 (python,java 等) 都隶属于高级语言,要让计算机理解,必须要转化为二进制,毕竟,计算机的本质其实是集成电路,对于电路来讲,通路只有开和关两种区别。
一般来讲,程序往往会先被翻译为汇编语言,然后在转化为二进制数据,汇编语言的产生,主要是为了解决二进制数据艰涩难懂的问题,以及编程的困难性。同时,汇编语言作为一个桥梁,所有的高级语言都是基于此演变而来的,所以,各种语言在本质上都是一样的。
# 编译过程
这个过程其实就是,先对代码遍历,然后句法分析,词法分析,语义分析转化为一个语法树 (ast),然后在翻译为汇编吧。
然后,汇编这个东西的语法貌似是个三元式子 MOV R0,R1
,第一个指代的是汇编指令 (这个主要是为了方便看),后面的一般是寄存器或具体的运算子啥的。
寄存器:个人对这个的理解,大致上就是,存数据啥的地方吧,