![GCC 编译器的前端是什么?](https://linux22.com/image/1527362/GCC%20%E7%BC%96%E8%AF%91%E5%99%A8%E7%9A%84%E5%89%8D%E7%AB%AF%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
据我所知,前端是程序或网站的 GUI,其“后端”有一个 Web 应用程序。
我感到困惑的是,对于 GCC(GNU C 编译器),有许多前端,但似乎在这个上下文中“前端”有不同的定义。
答案1
GCC 前端将代码转换为 GCC 使用的中间内部形式。GCC 后端将此中间内部形式转换为编译器输出的最终形式。
例如,如果您有 C++ 前端和 Java 前端,则可以接受 C++ 和 Java 输入。如果您有 x86 后端和 MIPS 后端,则可以为 x86 和 MIPS CPU 生成可执行文件。
如果你想为 GCC 添加 Go 支持,你需要为 GCC 编写一个 Go 前端。然后你就可以为 GCC 支持的每个平台编译 Go 代码。
如果您希望为 GCC 添加对新 CPU 的支持,您需要为该 CPU 编写一个新的后端。然后,您可以使用 GCC 支持的每种语言为该 CPU 生成代码。