Для моего собственного образования мне любопытно что использование компиляторов который фронтенд C++ и бэкенд. Можно ли просветить меня, где следующие технологии используются и какие признаки/преимущества они имеют если таковые имеются?
Open64 - это - бэкенд, фронтенд или оба? Какие компиляторы используют его? Я встречаюсь с ним в компиляторе CUDA.
EDG - насколько я могу сказать, что это - использование фронтенда компиляторами Intel и Comeau., другие компиляторы используют его? Я нашел довольно много ссылок на него в исходном коде повышения.
ANTLR - это - общий синтаксический анализатор. Какие-либо общие компиляторы используют его?
Относительно компиляторов:
с фронтендом/бэкэндом делает gcc использование пакета компилятора? это имеет общее наследие с каким-либо другим компилятором?
какой фронтенд/бэкэнд PGI и использование компиляторов PathScale?
какой фронтенд/бэкэнд XL использования компилятора (предложение IBM).
всесторонние ссылки в Интернете или Вашем персональном ноу-хау были бы большими. Я сделал некоторый поиск Google, но информация, с которой я обычно встречался, была довольно поверхностной.
Спасибо.
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 ++, но не знаю этого наверняка, и даже не могу начать догадываться о масштабах этого, даже если предположить, что это правда.
Проект Clang предоставляет новые интерфейсы для C / C ++ / Objective C поверх LLVM бэкэнд. Проект LLVM также предоставляет LLVM-gcc с использованием внешнего интерфейса GCC и внутреннего интерфейса LLVM. Проект DragonEgg направлен на замену серверной части GCC на LLVM.
Компиляторы Codeplay VectorC, Sieve и Offload используют пользовательский интерфейс и серверную часть
какой front-end/back-end использует набор компиляторов gcc? имеет ли он общее наследие с каким-либо другим компилятором?
Аббревиатура "GCC" означает "GNU compiler collection" (первоначально "GNU C compiler"), и это уже дает подсказку: компиляторы GNU - это коллекция компиляторов, прежде всего для C и C++, а также для Fortran, Objective-C и других. Они имеют общую внутреннюю часть и промежуточное представление, которое было разработано специально для GCC.
Все внешние компоненты написаны специально для GCC. Некоторые из них были созданы сторонними разработчиками, в частности, фронтенд Objective-C, который был создан компанией Apple.
Visual studio использует EDG для своего движка intellisense.