据我所知,前端是程序或网站的 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 生成代码。