Официальный компилятор языка D переведён в разряд свободного ПО

Разработчики языка программирования D объявили о переводе официального эталонного компилятора DMD (Digital Mars D) в разряд свободного ПО.

Бэкенд DMD, который ранее поставлялся в исходных текстах, но под проприетарной лицензией Digital Mars, отныне будет распространяться под свободной лицензией Boost, которая уже используется для кода фронтэнда.

Поставка бэкенда DMD под проприетарной лицензией была связана с тем, что компании Symantec принадлежали имущественные права на значительную часть кода. В частности, код компилятора DMD был основан на компиляторе Digital Mars C/C++, который, в свою очередь, продолжил развитие компилятора Symantec C++ (Уолтер Брайт, автор DMD и языка D, был главным разработчиком Zortech C++, Symantec C++ и Digital Mars C/C++).

Возможность перехода на свободную лицензию открылась после того, как компания Symantec официально предоставила проекту D право на перелицензирование кодовой базы. Кроме возможности поставки DMD в основных репозиториях дистрибутивов Linux, перелицензирование также позволит в будущем полностью перевести бэкенд DMD на язык D, по аналогии с фронтэндом, который уже переписан на D.

Кроме DMD сообществом параллельно развиваются два свободных компилятора LDC и GDC, которые являются фронтэндами к LLVM и GCC. По сравнению с LDC и GDC, официальный компилятор DMD отличается значительным превосходством в скорости компиляции, что позволят применять его для реализации функциональности, похожей на скрипты (исполнение кода во время компиляции).

Язык D использует статическую типизацию, обладает синтаксисом, схожим с C/C++, и обеспечивает производительность компилируемых языков, при этом заимствуя некоторые полезные возможности динамических языков в области эффективности разработки и обеспечения безопасности. Например, предоставляется поддержка ассоциативных массивов, косвенное определение типов, автоматическое управление памятью, средства параллельного программирования, опциональный сборщик мусора, система шаблонов, компоненты для метапрограммирования, возможность использовать библиотеки на языке C, а также некоторые библиотеки на C++ и Objective-C.

Источники:

reddit.com
opennet.ru




Добавить комментарий

Войти с помощью: