编译器是如何工作的?

新手上路,请多包涵

编译和运行期的加载是两回事:加载是加载二进制格式到不同的内存里。
编译器简单来说就是读入字节流处理后输出字节流的程序。
从读入字节流变换到输出字节流的过程,这块的过程是什么知识点?
在编译原理书中只能看到编译器程序工作后的结果,将输入的高级语言变成相应的输出。
但是老是控制不住去幻想:编译器程序工作过程中,会不会用到cpu和内存的?操纵cpu和内存这些硬件需要01机器码,源代码需要经过编译器或者解释器最终得到机器码才能在硬件上工作。但是编译器本身是一个由算法和数据结构组成的程序,它怎么实现翻译高级语言的动作呢?

阅读 2.8k
1 个回答

编译器分前端后端, 你说的这些是后端干的事:目标代码生成和优化
比如LLVM就擅长干这事

编译原理的书讲后端的很少,但是概念多少讲到了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进