Технологии, наука и безопасность своими словами

Технологии

Фронтенд EDG C/C++ открыли: Edison Design Group уходит с рынка

Компания Edison Design Group прекращает деятельность и открыла исходный код фронтенда компилятора EDG C/C++. Разработку передали сообществу. Фирма существовала с 1988 года и всё это время специализировалась на языковой части C и C++, так что уход компании и публикация кода произошли как одно решение, а не как отдельный жест в сторону открытой разработки.

Дальнейшая работа пойдёт под покровительством некоммерческой C++ Alliance. Организация предоставляет инфраструктуру и финансирует проекты вокруг языка, в том числе Boost. Для EDG это значит, что после закрытия Edison Design Group у фронтенда остаётся внешний хозяин с деньгами и площадкой, а не только архив исходников.

Код выпущен под лицензией Apache 2.0 с исключениями LLVM. Исключения убирают ограничения на включение runtime-частей компилятора в бинарные файлы и решают проблемы совместимости с GPLv2. Без этих оговорок открытый фронтенд было бы труднее совмещать с теми поставками, куда EDG уже встраивали как закрытый компонент.

Фронтенд делает препроцессинг, лексический, синтаксический и семантический анализ, находит ошибки и переводит исходный текст в универсальное промежуточное представление. Машинный код из этого представления получает бэкенд. Edison Design Group продавала именно эту половину компилятора: заказчик мог оставить собственную генерацию кода и взять у EDG разбор языка.

На EDG C/C++ опирались многие проприетарные компиляторы и анализаторы. В их числе Intel C++ Compiler, Comeau C++, IntelliSense в Microsoft Visual C++, NVIDIA CUDA Compiler, SGI MIPSpro и Portland C/C++. Открытие кода поэтому касается не одного продукта, а слоя, который уже сидел внутри чужих инструментов.

Помимо перевода в промежуточное представление фронтенд даёт диагностику: формирует подробные сведения о проблемах и указывает их место в коде. Оптимизацию он не выполняет. На выходе остаётся высокоуровневое древовидное представление на универсальном промежуточном языке, где отражены объявления, операторы и выражения и сохранены привязки к исходному тексту, чтобы проще собирать отладочную информацию.

Стандарты покрыты неравномерно. Полностью поддержаны C++11, C++14 и C++17, частично — C++20 и C++23. Есть расширения и диалекты Microsoft, GNU и Clang.

После передачи проекта сообществу одним из основных направлений станет полная поддержка актуальных стандартов C++: именно этот разрыв между уже закрытыми редакциями языка и новыми назван ближайшей работой. В долгой перспективе EDG C/C++ планируют довести до полнофункционального компилятора, способного конкурировать с GCC и LLVM/Clang. Сейчас для такой конкуренции не хватает собственной цепочки после разбора: фронтенд не оптимизирует код и не порождает машинные инструкции.

Заявка задаёт направление, но не описывает уже готовый соперник двум основным открытым стекам. На первом этапе кодовую базу будут сопровождать инженеры EDG, а финансирование их работы обеспечит C++ Alliance. Затем должны появиться открытые процессы, чтобы сторонние участники могли принимать активное участие и при этом не ронять качество.

Комитет по развитию проекта возглавит Джон Спайсер, один из ключевых разработчиков EDG C/C++. Прежняя команда таким образом остаётся у руля на старте, но проект заранее готовят к внешним вкладам.

программирование открытый код сопровождение

Оригинал

Обсуждение

Комментариев пока нет.

Похожие новости