Описание тега d2
D2 (версия 2) является преемником начальной версии языка программирования D, разработанной Уолтером Брайтом и с 2006 года Андреем Александреску.
обзор
D - язык системного программирования, разработанный Вальтером Брайтом и с 2006 года Андреем Александреску. Его цель - объединить мощь и высокую производительность C и C++ с производительностью программистов современных языков, таких как Ruby и Python. Особое внимание уделяется потребностям параллелизма, надежности, документации, обеспечения качества, управления и переносимости.
Язык D статически типизирован и компилируется непосредственно в машинный код. Он поддерживает множество стилей программирования: императивный, объектно-ориентированный, функциональный и метапрограммирование. Это член семейства синтаксиса C, и его внешний вид очень похож на C++.
В настоящее время существует две версии D:
- Версия 1 достигла стабильного статуса в 2007 году и была прекращена 31 декабря 2012 года.
- Версия 2, не имеющая обратной совместимости преемника, является полной функциональностью и в настоящее время находится на заключительной стадии разработки (см. Тег d2 для конкретной версии).
Дизайн Цели D
- Упростите написание кода, переносимого с компилятора на компилятор, с машины на машину и с операционной системы на операционную систему.
- Устранить неопределенные и определенные реализацией поведения настолько, насколько это практически возможно.
- Предоставьте синтаксические и семантические конструкции, которые устраняют или, по крайней мере, уменьшают распространенные ошибки.
- Уменьшите или даже устраните необходимость в сторонних статических контролерах кода.
- Поддержка памяти безопасного программирования.
- Поддержка программирования с несколькими парадигмами, т. Е. Как минимум поддержка императивных, структурированных, объектно-ориентированных, общих и даже функциональных парадигм программирования.
- Сделайте правильные вещи проще, чем неправильными.
- Иметь небольшую кривую обучения для программистов, знакомых с программированием на C, C++ или Java.
- Обеспечьте доступ к низкому уровню металла по мере необходимости.
- Предоставьте продвинутому программисту возможность избежать проверки при необходимости.
- Быть совместимым с локальным двоичным интерфейсом приложения C.
- Имейте грамматику без контекста, то есть успешный синтаксический анализ не должен требовать семантического анализа.
- Простая поддержка написания интернационализированных приложений.
- Включите методологию контрактного программирования и модульного тестирования.
- Уметь создавать легкие, автономные программы.
- Уменьшите затраты на создание документации.