LINUX.ORG.RU

Вышла новая версия компилятора языка D DMD 2.064

 ,


0

4

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

Нововведения коснулись также системы документирования исходного кода DDoc, которая теперь выполняет анализ комментариев исходных кодов и может предупреждать программиста, если пример кода в комментарии не соответствует последующему исходному коду.

Важной вехой в развитии языка стало начало использования его в компании FaceBook.

В настоящий момент идет активное расширение функциональности системной библиотеки Phobos и работа над созданием универсального кросплатформенного графического тулкита D-Quick

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

★★

Проверено: maxcom ()
Последнее исправление: ymn (всего исправлений: 3)
Ответ на: комментарий от forCe

Я уже писал, но...

... повторю, пожалуй. В С (в том-то и уникальность языка) можно реализовать в принципе то, что Вам заблагорассудится и что нужно в рамках решения текущей задачи. Нужно ООП? Можно и ООП (я, кстати, там выше про vtables не обмолвился, просто потому, что не особо ими пользуюсь, но видел код на С с ними). Создайте требуемую Вам иерархию «классов» и используйте. Если нужно, то можете использовать элементы, аналогичные существующим в ЯФП. Ни кто ни чего не навязывает. Как можете, так и пищите.

Самое весёлое в том, что Вам ни кто не скажет (как это сделано на сайте про D) — «ну всё, 3.14здец, теперь-то Вы точно будете писать правильно» (утрирую). Если мой компилятор и splint со мной согласны, значит я и так пишу правильно и мнение разработчиков языка меня может не волновать, если всё работает как задумывалось.

anonymous
()
Ответ на: Я уже писал, но... от anonymous

Да я с этим и не спорю. Реализовать можно в Си многое. Но мы обсуждаем то, что реализовано в других языках. В обсуждаемых С++ и D вам не нужно реализовывать ООП, вы им просто пользуетесь.

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

Здесь согласен с тем, что...

...

В обсуждаемых С++ и D вам не нужно реализовывать ООП, вы им просто пользуетесь.

Если вынести «за скобки» то, что нужно ли ООП именно в рамках текущей задачи, то да, я согласен с Вашим утверждением. Но беда в том, что мы исходим из ошибочного утверждения о том, что мир целиком и полностью состоит из объектов. Это не так. Если мы начнём рассматривать полноту описания объектов, то это абсолютно не так. Но это уже дебри, если честно.

Например, при написании какого-либо небольшого утиля, заточенного на (например) множественное копирование файлов по ftp между различными хостами через один сервер, нам объекты не будут помогать, они будут мешать (в терминах BSD sockets задача решается «на раз»). Можно, конечно, и на С++ написать в «стиле С», но не нужно, иначе тогда какой смысл в С++ и его классах?

anonymous
()
Ответ на: Я уже писал, но... от anonymous

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

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

loz ★★★★★
()
Последнее исправление: loz (всего исправлений: 1)
Ответ на: комментарий от loz

Не понял вопроса...

... мне нужно прочесть лекцию по С? Откуда я знаю какие выражения будут удобны Вам и как именно Вы хотите изменить порядок вычисления выражений? В данном случае Вы задаёте слишком расплывчатые вопросы, эти вещи определяются конкретикой решаемой задачи.

anonymous
()
Ответ на: Не понял вопроса... от anonymous

Конкретная задача - написать функцию a, которая при вызове a(1+1) принимает аргументом не результат выражения, а само выражение и может вычислить его когда захочет, или не вычислять вообще.

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

Каковы ограничения на...

... передаваемые аргументы? Синтаксические есть? Надо ли разделять случаи «1+1» и «1 + 1»? По какому критерию функция будет вычислять или будет отказываться вычислить выражение? Случайным образом или это где-то определено (например во внешней по отношению к данной функции переменной)?

anonymous
()
Ответ на: Здесь согласен с тем, что... от anonymous

хотя бы потому, что пространства имён, raii, шаблоны, стандартные контейнеры и пр. не имеют никакого отношения к ООП, но делают программирование приятнее.

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

... и здесь мы (чуть дальше) дойдём до «выразительности кода» и прочих сложно-сопоставляемых вещей. Если уж мы заговорили о:

но делают программирование приятнее.

приятностях в программировании. А кто-то фанатеет от экономичности кода. Ему приятнее обходится без спорных с его точки зрения усовершенствований. Этот кто-то неправ?

loz, продолжим завтра. Сегодня уже поздновато для меня.

anonymous
()
Ответ на: Каковы ограничения на... от anonymous

Синтаксические есть?

Ну очевидно это любая форма языка.

Надо ли разделять случаи «1+1» и «1 + 1»

Если они разделяются в языке.

По какому критерию функция будет вычислять или будет отказываться вычислить выражение?

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

loz ★★★★★
()
Ответ на: Здесь согласен с тем, что... от anonymous

В С++ есть много усовершенствований, помимо ООП. Кроме того, не вижу никаких препятствий для использования ООП в данной задаче.

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