C++编译器和后端/前端

Any*_*orn 21 c++ compiler-construction frontend backend

对于我自己的教育,我很好奇编译器使用哪个C++前端和后端.您能否告诉我使用以下技术的地方以及它们具有哪些标志/优势?

  • Open64 - 它是后端,前端还是两者兼而有之?哪些编译器使用它?我在CUDA编译器中遇到它.

  • EDG - 据我所知,这是英特尔编译器和Comeau的前端使用.其他编译器使用它吗?我在boost源代码中找到了不少引用它.

  • ANTLR - 这是一般解析器.有没有常见的编译器使用它?

关于编译器:

  • 使用前端/后端gcc编译器套件使用?它与其他编译器有共同的遗产吗?

  • 前端/后端PGI和PathScale编译器使用什么?

  • 前端/后端XL编译器使用的是什么(IBM产品).

互联网上的深入链接或您的个人技术诀窍会很棒.我做了一些谷歌搜索,但我通常遇到的信息相当肤浅.

谢谢.

Jer*_*fin 11

EDG是Intel和Comeau使用的前端.请参阅EDG的其他用户的客户列表.

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,很可能是GCC 2.x.

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

据我所知,IBM的编译器完全是他们自己创建的.我 IBM(现已停产)VisualAge for C++与XL C++分享了一些遗产/开发/代码,但不确定,甚至不能开始猜测它的程度,即使假设它是真的.


grr*_*sel 8

项目提供了新的前端为C/C++ /目的对的顶部Ç LLVM后端.LLVM项目还使用GCC前端和LLVM后端提供LLVM-gcc.该DragonEgg项目旨在替换LLVM的GCC后端.

Codeplay VectorC,Sieve和Offload编译器使用自定义前端和后端


Kon*_*lph 7

与前端/后端gcc编译器套件使用?它与其他编译器有共同的遗产吗?

首字母缩略词"GCC"代表"GNU编译器集合"(最初是"GNU C编译器"),这已经给出了一个提示:GNU编译器是编译器的集合,最着名的是C和C++,但也适用于Fortran,Objective-C和其他.它们共享一个专门为GCC开发的共同后端和中间表示.

前端都是为GCC定制的.有些是由第三方提供的,最值得注意的是由Apple提供的Objective-C前端.


Mot*_*tti 5

Visual Studio 使用EDG作为其智能感知引擎.