我不知道这是否适合这样的事情,但我对 GCC 前端/后端架构的几个方面感到好奇:
- 我知道我可以
.o
从 C 代码编译文件并将它们链接到 C++ 代码,我想我也可以反过来做。这是因为这两种语言相似,还是因为 GCC 后端真的与语言无关?这也适用于 ADA 代码吗?(我什至不知道这是否有意义,因为我不知道 ADA 或者它是否具有“功能”,但问题是可以理解的。如果没有意义,请考虑“帕斯卡”甚至“我自己的习惯”语言前端") - 垃圾收集将在哪里实施?例如,Java 前端。我理解的方式,如果编译到JVM后端,“平台”会处理GC,所以前端不需要做任何事情,但如果编译为本机代码,前端会将垃圾收集 GENERIC 代码发送到后端,还是打开一些标志告诉后端生成垃圾收集代码?第一个对我来说更有意义,但这意味着前端会根据目标产生不同的输出,这似乎错过了 GCC 的前端/后端架构的重点。
- 特定语言的库会去哪里?例如,标准 Java 类或标准 C 头文件。如果它们最后被链接,那么理论上 C 程序是否可以从 Java 库或类似的东西中调用函数,因为它只是另一个链接库?