Официальный компилятор языка D переведён в разряд свободного ПО
Разработчики языка программирования D объявили о переводе официального эталонного компилятора DMD (Digital Mars D) в разряд свободного ПО. Бэкенд DMD, который ранее поставлялся в исходных текстах, но под проприетарной лицензией Digital Mars, отныне будет распространяться под свободной лицензией Boost, которая уже используется для кода фронтэнда.
Поставка бэкенда DMD под проприетарной лицензией была связана с тем, что значительная часть кода была разработана компанией Symantec, сохранившей свои имущественные права. В частности, код компилятора DMD был основан на компиляторе Digital Mars C/C++, который, в свою очередь, заимствовал часть кода из компилятора Symantec C++. Возможность перехода на свободную лицензию открылась после того, как компания Symantec официально предоставила проекту D право на перелицензирование кодовой базы. Кроме возможности поставки DMD в основных репозиториях дистрибутивов Linux, перелицензирование также позволит в будущем полностью перевести бэкенд DMD на язык D, по аналогии с фронтэндом, который уже переписан на D.
Кроме DMD сообществом параллельно развиваются два свободных компилятора LDC и GDC, которые являются фронтэндами к LLVM и GCC. По сравнению с LDC и GDC, официальный компилятор DMD отличается значительным превосходством в скорости компиляции, что позволят применять его для реализации функциональности, похожей на скрипты (исполнение кода во время компиляции).
Язык D использует статическую типизацию, обладает синтаксисом, схожим с C/C++, и обеспечивает производительность компилируемых языков, при этом заимствуя некоторые полезные возможности динамических языков в области эффективности разработки и обеспечения безопасности. Например, предоставляется поддержка ассоциативных массивов, косвенное определение типов, автоматическое управление памятью, средства параллельного программирования, опциональный сборщик мусора, система шаблонов, компоненты для метапрограммирования, возможность использовать библиотеки на языке C, а некоторые библиотеки на C++ и Objective-C.
© OpenNet