Компиляторы C++ и спина/фронтэнды

Для моего собственного образования мне любопытно что использование компиляторов который фронтенд C++ и бэкенд. Можно ли просветить меня, где следующие технологии используются и какие признаки/преимущества они имеют если таковые имеются?

  • Open64 - это - бэкенд, фронтенд или оба? Какие компиляторы используют его? Я встречаюсь с ним в компиляторе CUDA.

  • EDG - насколько я могу сказать, что это - использование фронтенда компиляторами Intel и Comeau., другие компиляторы используют его? Я нашел довольно много ссылок на него в исходном коде повышения.

  • ANTLR - это - общий синтаксический анализатор. Какие-либо общие компиляторы используют его?

Относительно компиляторов:

  • с фронтендом/бэкэндом делает gcc использование пакета компилятора? это имеет общее наследие с каким-либо другим компилятором?

  • какой фронтенд/бэкэнд PGI и использование компиляторов PathScale?

  • какой фронтенд/бэкэнд XL использования компилятора (предложение IBM).

всесторонние ссылки в Интернете или Вашем персональном ноу-хау были бы большими. Я сделал некоторый поиск Google, но информация, с которой я обычно встречался, была довольно поверхностной.

Спасибо.

21
задан 5 revs, 2 users 88% 16 December 2014 в 16:05
поделиться

4 ответа

EDG - это интерфейс, используемый Intel и Comeau. См. Список клиентов EDG для других пользователей.

ANTLR - генератор парсера. Я не знаю ни одного компилятора C ++, построенного на основе синтаксического анализатора, созданного с помощью ANTLR (хотя это не значит, что он не может существовать).

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 для C ++ поделился некоторым наследием / разработкой / кодом с XL C ++, но не знаю этого наверняка, и даже не могу начать догадываться о масштабах этого, даже если предположить, что это правда.

11
ответ дан 29 November 2019 в 21:21
поделиться

Проект Clang предоставляет новые интерфейсы для C / C ++ / Objective C поверх LLVM бэкэнд. Проект LLVM также предоставляет LLVM-gcc с использованием внешнего интерфейса GCC и внутреннего интерфейса LLVM. Проект DragonEgg направлен на замену серверной части GCC на LLVM.

Компиляторы Codeplay VectorC, Sieve и Offload используют пользовательский интерфейс и серверную часть

8
ответ дан 29 November 2019 в 21:21
поделиться

какой front-end/back-end использует набор компиляторов gcc? имеет ли он общее наследие с каким-либо другим компилятором?

Аббревиатура "GCC" означает "GNU compiler collection" (первоначально "GNU C compiler"), и это уже дает подсказку: компиляторы GNU - это коллекция компиляторов, прежде всего для C и C++, а также для Fortran, Objective-C и других. Они имеют общую внутреннюю часть и промежуточное представление, которое было разработано специально для GCC.

Все внешние компоненты написаны специально для GCC. Некоторые из них были созданы сторонними разработчиками, в частности, фронтенд Objective-C, который был создан компанией Apple.

7
ответ дан 29 November 2019 в 21:21
поделиться

Visual studio использует EDG для своего движка intellisense.

5
ответ дан 29 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: