Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
165 views
in Technique[技术] by (71.8m points)

编译器是如何工作的?

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

56.8k users

...