tecnologias pruebas mapa lenguajes full front end diferencia c++ compiler-construction frontend backend

c++ - mapa - pruebas back end y front end



Compiladores C++ y back/front-end. (4)

Para mi propia educación, tengo curiosidad por saber qué compiladores usan qué front-end y back-end de C ++. ¿Me puede ilustrar dónde se utilizan las siguientes tecnologías y qué características / ventajas tienen si las hay?

  • Open64: ¿es back-end, front-end o ambos? ¿Qué compiladores lo utilizan? Lo encuentro en el compilador de CUDA.

  • EDG: por lo que puedo decir, este es un uso de front-end por parte de los compiladores de Intel y Comeau. ¿Lo usan otros compiladores? Encontré bastantes referencias a él en el código fuente de impulso.

  • ANTLR - este es un analizador general. ¿Algún compilador lo usa?

Respecto a los compiladores:

  • con front-end / back-end, ¿usa la suite compiladora gcc? ¿Tiene patrimonio común con algún otro compilador?

  • ¿Qué compiladores front-end / back-end PGI y PathScale usan?

  • qué utiliza el compilador de front-end / back-end XL (oferta de IBM).

Los enlaces detallados en Internet o su experiencia personal serían excelentes. Hice algunas búsquedas en Google, pero la información que encontré en general era bastante superficial.

Gracias.


¿con el front-end / backend usa el compilador gcc? ¿Tiene patrimonio común con algún otro compilador?

El acrónimo "GCC" significa "colección de compiladores GNU" (originalmente "compilador GNU C") y esto ya da una pista: los compiladores GNU son una colección de compiladores, especialmente para C y C ++ pero también para Fortran, Objective-C y otros. Comparten un back-end común y una representación intermedia que se desarrolló específicamente para GCC.

Los frontales son todos personalizados para el GCC. Algunos fueron aportados por terceros, en particular el front-end de Objective-C, que fue contribuido por Apple.


EDG es una interfaz de usuario utilizada por Intel y Comeau. Vea la lista de customers de EDG para otros usuarios.

ANTLR es un generador de parser. No tengo conocimiento de ningún compilador de C ++ creado alrededor de un analizador que se haya creado con ANTLR (aunque eso no significa que no pueda existir).

GCC es un conjunto de compiladores, con aplicaciones para C, C ++, Fortran, Ada, Java, etc. y aplicaciones para más procesadores de los que me gustaría pensar.

Open64 también es un conjunto de compiladores que incluye varios front-ends (para C, C ++, Fortran y posiblemente otros que no recuerdo en este momento) y back-ends (dirigidos a X64, Itanium, ARM y, de nuevo, probablemente otros No recuerdo y / o no sé acerca de. Creo que su origen (juego de palabras señalado como no intencionado) es el compilador (s) de SGI. Me parece recordar haber leído algo que sugiere que Open64 se derivó de alguna versión de la (s) interfaz (s) frontal (s) de GCC, pero de antemano no sé 1) qué tan similar es GCC internamente, o 2) la versión de GCC de la que derivado, pero ha existido el tiempo suficiente como para suponer que fue GCC 3.x en la versión más reciente, y posiblemente GCC 2.x.

Creo que PathScale ha creado al menos un compilador derivado de Open64, pero también pueden tener otros.

Que yo sepa, el compilador de IBM es totalmente su propia creación. Supongo que el VisualAge para C ++ de IBM (ahora descontinuado) compartió un poco de herencia / desarrollo / código con XL C ++, pero no lo sé con certeza, y ni siquiera puedo empezar a adivinar el alcance de este, incluso suponiendo que sea cierto .


El proyecto Clang proporciona nuevos front-ends para C / C ++ / Objective C en la parte superior del backend LLVM . El proyecto LLVM también proporciona un LLVM-gcc, utilizando el extremo delantero GCC y el backend LLVM. El proyecto DragonEgg busca reemplazar el backend de GCC con LLVM.

Los compiladores Codeplay VectorC, Sieve y Offload utilizan un front-end y back-end personalizados.


Visual Studio utiliza EDG para su motor intellisense.