这是一个我不太了解的主题,我希望能更好地理解这个主题。
我正在阅读有关 Apple 向 Apple Silicon 过渡的文章,在某些时候我读到“Apple 将发布 Rosetta 2,这是一个让您可以在新 Mac 上运行旧应用程序的仿真层。”
据我所知,应用程序是用高级语言(例如 C/C++、Java 等)编写的。然后编译器(假设解释器暂时不存在)读取该代码并将其转换为汇编代码。然后汇编器将汇编代码转换为处理器可读的机器代码。
我的问题是,假设以上是正确的,为什么需要 Rosetta 2,因为 CPU 应该将高级代码转换为可读的机器代码?为什么开发人员需要“优化”(或关心他们的应用程序在哪个处理器上运行)他们的应用程序,因为它们(大部分)是用高级语言(处理器可以编译)编写的?我不明白为什么程序员会关心 CPU 是否应该处理编译和汇编。
这个问题可能相当琐碎,但仅通过阅读有关编译器或 CPU 架构的信息,我无法找到我想要的东西。