编译器原理
# 什么是编译器
编译器的主要功能是将我们的高级语言编译成cpu可以直接执行的机器语言,即二进制语言。
编译器是一个专门的程序。
如下图所示语言
int a = 1;
int b = 2;
while(a < b){
b = b-1;
}
1
2
3
4
5
2
3
4
5
从人的角度来看,上面的语言是如下的意思:
把变量a赋值为1
把变量b赋值为2
如果a<b,则b减一
重复上面一句,直到a<b不再成立为止
上面的语句虽然人听起来懂,但是事实上机器是不懂的,我们还需要翻译为机器可以理解的语言
# 高级语言如何到机器语言
# 词法分析
编译器首先需要把代码中的每个符号给解析出来,并且把该符号与其附带的信息打包。例如int,其表示了两种含义
- 这是一个关键词
- 这是一个int关键词
将这两个信息打包后,称之为token符号,例如上面的代码最终会生成如下的token
上面的第一个表示token,第二个表示其值。从源代码中将token提取出来的过程叫做词法分析
# 语法分析
编辑 (opens new window)
上次更新: 2024/02/22, 14:03:19