对于我自己的教育,我很好奇什么编译器使用哪个C++前端和后端。
您能启发我使用以下技术的地方以及它们的标志/优点(如果有)?

  • Open64-是后端,前端还是两者?哪些编译器使用它?我在CUDA编译器中遇到它。
  • EDG-据我所知,这是Intel编译器和Comeau的前端使用。其他编译器会使用它吗?我在boost源代码中发现了很多对其的引用。
  • ANTLR-这是通用解析器。有没有普通的编译器使用它?

  • 关于编译器:

    gcc编译器套件使用带有前端/后端的
  • 吗?它与其他任何编译器都有共同的遗产吗?
  • 前端/后端PGI和PathScale编译器使用什么?
  • 前端/后端XL编译器使用什么(IBM产品)。

  • 互联网上的深入链接或您的个人知识将非常有用。
    我做了一些Google搜索,但是我通常遇到的信息是肤浅的。

    谢谢。

    最佳答案

    EDG是Intel和Comeau使用的前端。请参见其他用户的EDG的customers列表。

    ANTLR是解析器生成器。我不知道有任何使用ANTLR构建的解析器周围构建的C++编译器(但这并不意味着它不存在)。

    GCC是一套编译器,具有用于C,C++,Fortran,Ada,Java等的前端,以及用于更多处理器的后端,这超出了我的考虑。

    Open64还是一套编译器,包括几个前端(针对C,C++,Fortran,以及可能我目前还不记得的其他前端)和后端(针对X64,Itanium,ARM,也许还有其他)我不记得和/或不知道)。我相信它的起源(用双关语暗示)是SGI的编译器。我似乎记得记得读过一些暗示Open64源自某些版本的GCC前端的信息,但从另一方面来说,我不知道1)它与GCC在内部的相似程度如何,或者2)它来自的GCC版本派生-但它已经存在了足够长的时间,以至于我猜它是最新的GCC 3.x,很有可能是GCC2.x。

    我相信PathScale已经创建了至少一个从Open64派生的编译器,但它们可能还有其他编译器。

    据我所知,IBM的编译器完全是他们自己创建的。我猜IBM的VisualAge(现已停产)的C++与XL C++共享了一些继承/开发/代码,但我不确定,甚至假设它是真的也无法开始猜测它的范围。

    关于c++ - C++编译器和后端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2618494/

    10-17 00:08