|
Компания Edison Design Group в связи с прекращением своей деятельности открыла исходный код фронтенда компилятора EDG C/C++ и передала его разработку сообществу. Дальнейшая работа над EDG C/C++ будет вестись под покровительством некоммерческой организации C++ Alliance, предоставляющей инфраструктуру и финансирующей работу над такими проектами, как Boost. Код EDG C/C++ открыт под лицензией Apache 2.0 с исключениями LLVM, убирающими ограничения по включению runtime-частей компилятора в бинарные файлы и решающих проблемы с совместимостью с GPLv2.
Компания Edison Design Group была создана в 1988 году и специализировалась на разработке фронтэнда для языков C и C++, выполняющего работу по препроцессингу, лексическому, синтаксическому и семантическому анализу исходного кода, выявлению ошибок и преобразованию в универсальное промежуточное представление, которое затем используется бэкендом для генерации машинного кода. EDG C/C++ применялся в качестве фронтэнда во многих проприетарных компиляторах и анализаторах кода, включая такие продукты как Intel C++ Compiler, Comeau C++, Microsoft Visual C++, NVIDIA CUDA Compiler, SGI MIPSpro и Portland С/C++.
Помимо преобразования исходного кода в промежуточное представление
EDG C/C++ предоставляет возможности для диагностики ошибок в коде c формированием детальной информации о проблемах и их местоположению в коде. При этом фронтэнд не выполняет оптимизацию и лишь генерирует высокоуровневое древовидное структурированное представление на универсальном промежуточном языке, отражающее информацию об объявлениях, операторах и выражениях с привязками к исходному коду для упрощения генерации отладочной информации.
В EDG C/C++ полностью поддерживаются стандарты C++11, C++14 и C++17, частично C++20 и C++23, а также расширения и диалекты Microsoft, GNU и Clang. Одним из основных направлений деятельности после передачи проекта сообществу станет проведение работы по добавлению в EDG полной поддержки актуальных стандартов C++. В долгосрочной перспективе планируется довести EDG C/C++ до состояния полнофункционального компилятора, способного конкурировать с GCC и LLVM/Clang.
На первом этапе сопровождением кодовой базы нового открытого проекта займутся инженеры из EDG, финансирование работы которых обеспечит C++ Alliance. Со временем будут выработаны открытые процессы, позволяющие сторонним участникам принимать активное участие в разработке, сохраняя при этом высокое качество продукта. Комитет, который будет контролировать развитие проекта, возглавит Джон Спайсер (John Spicer), один из ключевых разработчиков EDG C/C++.
|