LINUX.ORG.RU

Попытка реинтеграции компилятора D в состав GCC

 , ,


2

6

Как можно заключить из сообщений в рассылке разработчиков gcc, к версии gcc 4.8 будет предпринята попытка официально ввести в состав gcc gdc — свободную реализацию компилятора языка D (digitalmars D).

D позиционируется как «системный язык программирования высокого уровня» и предоставляет как высокоуровневые возможности, включая присущие динамическим языкам, так и позволяет при необходимости задействовать характерные для системного программирования низкоуровневые особенности, включая ручное управление памятью. В известной степени D можно считать наследником C++, избавленным от неоднозначностей.

Так, средства метапрограммирования имеют ясный синтаксис и не порождают нечитаемых сообщений об ошибках. Язык поддерживает концепцию модулей. Скорость компиляции и сборки кода настолько высока, что D можно использовать вместо интерпретируемых языков (скрипты).

D не накладывает жёстких парадигменных ограничений и позволяет записывать код в обобщённом, объектно-ориентированном, функциональном и процедурном стилях, а так же их комбинации. Штатно предоставляются полные средства интроспекции. Дополнительно компилятор несёт в себе нечто вроде интерпретатора языка, позволяющего динамически добавлять/изменять методы во время исполнения.

Имеются средства прямого вызова функций, реализованных на языках C и C++.

В целом, D представляется интересным для программирующих пользователей, нуждающихся в современных выразительных средствах, но не имеющих возможности изучать все особые случаи C++.

Свободно доступен референсный компилятор dmd, однако он предназначен, скорее, для исследовательских целей. Появление штатного фронтенда D в наборе gcc позволяет надеяться на переход от чисто экспериментального применения этого интересного и мощного языка к широкому внедрению.

>>> Подробности



Проверено: Shaman007 ()

А у него есть стандарт или какое-то подобие?

encyrtid ★★★★★ ()
Ответ на: комментарий от encyrtid

Как и у Питончика, формальной стандартизации ещё не было. Есть два варианта языка, D1 --- стабильный, зафиксированный, и D2 --- текущее развитие. Впрочем, судя по всему, основные пертурбации уже позади.

glebiao ()

Bugzilla 4604: A stack overflow with writeln - исправлено в последнем релизе. Глобально и надежно!

basp ()

интерпретатор в кучу говна гцц? лолшто, не смешите меня. они замучаются ассемблерные вставки переписывать

ckotinko ☆☆☆ ()
Ответ на: комментарий от basp

A stack overflow with writeln - исправлено в последнем релизе

Релизе чего?

Глобально и надежно!

Потенциально - да. Язык очень красив.

anonymous ()
Ответ на: комментарий от ckotinko

интерпретатор в кучу говна гцц? лолшто, не смешите меня. они замучаются ассемблерные вставки переписывать

Перестаньте пороть чушь, это бесчеловечно.

А возможность, очень интересная.

anonymous ()
Ответ на: комментарий от basp

в промежуточном релизе D-2.059

Какое он имеет отношение к обсуждаемой новости? Ну, идёт разаботка, ну и что?

anonymous ()
Ответ на: комментарий от anonymous

Обсуждается D, разве не так?
Разработка D идет несколько лет и до сих пор во второй версии встречаются эпичные баги. Первая же версия неактуальна и востребована даже меньше, чем вторая. Зачем такое добро gcc непонятно.

basp ()

компилятора D в состав GCC

Скоро GCC превратится в АБВГэДэйку.

splinter ★★★★★ ()

системный язык программирования высокого уровня для программирующих пользователей

Офигеть, количество взаимоисключающих параграфов зашкаливает. Надо пощупать!

AiFiLTr0 ★★★★★ ()
Ответ на: комментарий от basp

Разработка D идет несколько лет и до сих пор во второй версии встречаются эпичные баги.

И что такого эпичного в переполнении буфера writeln? Ты хоть багзиллу читал?

tailgunner ★★★★★ ()

Хорошая новость. Это будет большой шаг в сторону прогресса и закапывания переносимых ассемблеров.

kranky ★★★★★ ()
Ответ на: комментарий от kranky

большой шаг в сторону прогресса и закапывания переносимых ассемблеров

закапывания переносимых ассемблеров

Бешено лорчую!

buddhist ★★★★★ ()
Ответ на: комментарий от basp

Разработка D идет несколько лет и до сих пор во второй версии встречаются эпичные баги

этот баг --- в рантайме и концепции не затрагивает.

Первая же версия неактуальна и востребована даже меньше, чем вторая.

Где востребован C++ образца 1989г. ? Через сколько лет разработки появился 14882:2003?

По-моему, всё в порядке: потихоньку пилят. Первая концепция объявлена отлитой в бронзе и троганию руками не рекомендуется.

glebiao ()

Значит ли это, что в D можно будет использовать OpenMP? Кстати, что означает слово референсный? У меня его даже спеллчекер подчеркивает.

sanchopanca ()
Ответ на: комментарий от zavok

Tutorial D это оно?

Смотря, какой. Если 1.03, то не стоит.

Легко гуглится книжка Александреску The D Programming Language ISBN 13: 978-0-321-63536-5 ISBN 10: 0-321-63536-1 Addison Wesley 2010

Есть очень хороший перевод на русский ISBN 978-5-93286-205-6 Символ-плюс, 2012. К сожалению, в электронном виде не находится.

glebiao ()
Ответ на: комментарий от sanchopanca

Кстати, что означает слово референсный?

Означает, что стандарта у языка нет, потому берите, ребята, пример, дескать, с dmd пока что.

metar ★★★ ()
Ответ на: комментарий от sanchopanca

Значит ли это, что в D можно будет использовать OpenMP?

на сегодня такие реализации мне неизвестны. К сожалению. Хотелось бы надеяться... А вообще, там весьма мощная поддержка многопоточного программирования.

Я бы тоже рад видеть там и аналог blitz++ (хотя, не очень критично: в D мощная работа с э... массивами), и аналог eigen3...

Дык надо же с чего-то начинать?

Кстати, что означает слово референсный?

читай: для справок, образцовый опытный экземпляр.

glebiao ()

я не понял, там так и осталось ДВЕ системные стандартные библиотеки? или что там - был такой момент который сильно не понравился

I-Love-Microsoft ★★★★★ ()

На нем удобно кроссплатформенные десктопные приложение писать? Так чтобы безболезненно и без танцев при потребности собрать на винде?

Как насчет rest веб-сервисов и работы с базами?

vertexua ★★★☆☆ ()

Что такое «программирующие пользователи» ? И в чем разница к программистам я не понял? :)

acukac ()
Ответ на: комментарий от glebiao

А вообще, там весьма мощная поддержка многопоточного программирования.

Многопоточное это хорошо, но к сожалению выполнять потоки на разных ядрах у меня не получилось.

sanchopanca ()
Ответ на: комментарий от sanchopanca

sanchopanca

выполнять потоки на разных ядрах у меня не получилось

Может, у тебя одно ядро? Да и код в студию.

post-factum ★★★★★ ()

Нафурхуа нужен этот D? Замена C++?

Хочешь высокоуровневости без отрыва от реальности - возьми ocaml.

x4DA ★★★★★ ()
Ответ на: комментарий от post-factum

Ядер целых два, код только вечером смогу показать. Если вечером посмотришь, да еще и поможешь, я буду тебя боготворить.

sanchopanca ()
Ответ на: комментарий от x4DA

Нафурхуа нужен этот D? Замена C++?

Ага.

Хочешь высокоуровневости без отрыва от реальности - возьми ocaml.

Ocaml как путь миграции Си++-программистов - это даже не смешно.

tailgunner ★★★★★ ()
Ответ на: комментарий от sanchopanca

но к сожалению выполнять потоки на разных ядрах у меня не получилось

э??? это как?

вообще-то, всё нормально разбрасывается по ядрам, с потоками проблем я не обнаружил.

glebiao ()

Ну здравствуй, sunrise оверлей, приятно познакомиться.

Nensha ()
Ответ на: комментарий от acukac

Что такое «программирующие пользователи» ?

В смысле Ершова.

И в чем разница к программистам я не понял?

Специалист — физик не обязан быть гуру в C++. Хотя сейчас, чаще всего, так и происходит.

Чем D и привлекает: взяты жизнеспособные концепции, убран старый хлам и бардак.

glebiao ()
Ответ на: комментарий от tailgunner

Ocaml как путь миграции Си++-программистов - это даже не смешно.

Ну, не питонище же использовать? :)

Кстати, вопрос интересный. Судя по всему, сборщик мусора в D медленнее аналогичного из Ocaml.

dave ★★★★★ ()
Ответ на: комментарий от tailgunner

Хм, и какие проблемы присутствующие в C++11 D способен решить?

Про ocaml - почему бы и нет?

x4DA ★★★★★ ()
Ответ на: комментарий от dave

Кстати, вопрос интересный. Судя по всему, сборщик мусора в D медленнее аналогичного из Ocaml

Но он же однопоточный?

encyrtid ★★★★★ ()
Ответ на: комментарий от dave

Медленней, но у ocaml до сих пор нет параллельного GC и, вообще, потоков.

x4DA ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Нет, во второй версии только одна стандартная библиотека

anonymous ()
Ответ на: комментарий от dave

Ocaml как путь миграции Си++-программистов - это даже не смешно.

Ну, не питонище же использовать? :)

Нет, конечно. Не хватает статической типизации ;)

Судя по всему, сборщик мусора в D медленнее аналогичного из Ocaml.

У D синтаксис привычней - Ocaml он уже победил.

tailgunner ★★★★★ ()
Ответ на: комментарий от vertexua

На нем удобно кроссплатформенные десктопные приложение писать?

Не всё сразу. Есть привязка к Qt, но она тоже в процессе.

Так чтобы безболезненно и без танцев при потребности собрать на винде?

Языковые средства для переноса (там, где это действительно надо) предусмотрены.

Как насчет rest веб-сервисов

Это что?

и работы с базами?

привязки есть.

Ещё раз. Язык только начинает выходить из состояния маргинальщины, не надо требовать существования полной экосистемы.

glebiao ()
Ответ на: комментарий от x4DA

и какие проблемы присутствующие в C++11 D способен решить?

Сложность.

Про ocaml - почему бы и нет?

Ответ уже давно ясен - «нет», и неважно, почему именно.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

У D синтаксис привычней - Ocaml он уже победил.

D ещё никого не победил.

Nensha ()
Ответ на: комментарий от dave

Ну, не питонище же использовать?

Почему бы нет? Я большой любитель питончика, только за.

Но. Часто нужна машинно-ориентированная прослойка, и питоничик и не к ночи будет сказано, C#, оказываются в пролёте. D тут выглядит весьма привлекательно.

сборщик мусора в D медленнее аналогичного из Ocaml

Ничего сказать не могу, это всё нужно тестировать. Главное, что предпринято всё, чтобы сборщик был предсказуемым.

glebiao ()
Ответ на: комментарий от tailgunner

Нет, конечно. Не хватает статической типизации

Недавно была статья, о переходе старых волков на динамические языки... что-то типа «внезапно обнаружили, что отсутствие статической типизации не приводит к проблемам и снижению надёжности программ»

glebiao ()
Ответ на: комментарий от glebiao

Допилят extern C++ тогда и привязки практически не нужны будут, кроме конечно реализации moc'а, кстати, в D его для QtD сделали вообще средствами языка!

Gorthauer ★★★★★ ()

Хорошая новость, надеюсь на развитие этого языка, ибо C++ крив, а заменить его сейчас нечем.

m0rph ★★★★★ ()

Отличная новость, язык очень хороший, убрана арифметика указателей и положена передача по ссылке.

+Макросы когда код на D выполняется и генерирует код на D во время компиляции с проверкой типов и прочими ништяками,

+ частичный вывод типов аля Scala.

+ compilable into native code

+ нагибает сисярпы по наличию разных ништяков в языке

То есть вот он, язык, на котором удобно писать быстрые программы без отстреливания пердака.

s9gf4ult ★★ ()
Ответ на: комментарий от s9gf4ult

нагибает сисярпы по наличию разных ништяков в языке

С этого места поподробнее.

encyrtid ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.