程序是怎么一步步变成机器指令的?
2024-09-23
今天简单聊聊程序是怎么一步步变成机器指令的。
想让CPU执行代码只需要简单的点击一下这个按钮:
提取出token之后还需要知道这些token组合在一起的含义是什么。
假设编译器接下来发现token是if,那么很显然,接下来会判定这是一个if语句,那么接下来就按照if语句的语法来解析。
编译器在按照语法解析时会生成一颗树,首先匹配的是if本身:
接下来是左括号:
括号之后是布尔表达式:
如果你发明了一种语言,为了适配不同的处理器自己需要针对每一种处理器编写相应的后端部分。
要是有一种工具能帮我们完成针对不同处理器的适配工作就好了,这就是LLVM,我们可以只生成针对LLVM的中间代码,由LLVM处理剩下的部分。
得到汇编指令后编译器会最终将其转为CPU可以认知的二进制机器指令,每个源文件被编译后都会生成一个目标文件,目标文件中就是转换后的二进制机器指令。
最后,链接器会把目标文件打包成最终的可执行程序,