D (мова програмування)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
D programming language
D Programming Language logo.svg
Парадигма multi-paradigm: процедурний, об'єктно-орієнтований, функційний, узагальнений
Дата появи 2000 і 8 грудня 2001
Творці Walter Bright, Andrei Alexandrescu (від 2006)
Розробник Digital Mars, Andrei Alexandrescu (від 2006)
Останній реліз 2.088.0 (1 вересня, 2019; 14 місяців тому (2019-09-01)[1])
Система типізації strong, static
Основні реалізації DMD (reference implementation), GDC, LDC
Під впливом від C, C++, C#, Eiffel, Java, Python, Ruby
Вплинула на MiniD, DScript, Vala, Qore
Операційна система DMD: Unix-подібні (FreeBSD, Linux тощо), Windows, MacOS X
Ліцензія GPL/Artistic (DMD frontend),
Boost (стандартна бібліотека та бібліотека часу виконання),
доступні коди (DMD backend),
Повністю відкритий код (LDC та GDC)[2]
Звичайні розширення файлів ..d
Вебсайт dlang.org

Dоб’єктно-орієнтована, імперативна, багатопарадигмова мова програмування. Мова створена Волтером Брайтом (англ. Walter Bright), засновником компанії Digital Mars. Хоча D виникла як реінжиніринг C++, D — це самостійна мова, в якій змінено деякі основні принципи С++; також багато взято із інших мов, зокрема Java, Python, Ruby, C# і Eiffel.

В D зроблено спробу поєднати швидкість мов, які використовують компіляцію, із безпекою і потужною виразністю сучасних мов з динамічною типізацією. Особливістю D є те, що код зазвичай такий же швидкий, як еквівалентний на С++, при цьому код коротший і в ньому застосовується безпечне виділення пам'яті, у той час як перевірка меж, розробка за контрактами і типи, безпечні для багатопоточності, дозволяють зменшити кількість помилок у програмному продукті.

Визначення типу (Type inference), автоматичне управління пам'яттю, вбудоване модульне тестування і «синтаксичний цукор» для основних типів забезпечують можливості більш короткого циклу розробки програм з меншою кількістю помилок.

Основні можливості[ред. | ред. код]

Мова програмування D розроблялася одночасно з розвитком компілятора для цієї мови, і після засвоєння уроків, отриманих із практичного використання C++. Хоча мова D використовує багато понять C і C ++, вона також відкидає деякі (невдалі на думку розробників) підходи цих мов, або ж використовує зовсім інший підхід (як і синтаксис) для досягнення певних цілей. Джерельний код на D не сумісний з C++, однак D була обмежена правилом, що будь-який код для C, повинен залишатся сумісним з кодом для D, і повинен виконуватись однаково. D набагато раніше за C++ отримав засоби для функційного програмування, такі як замикання (closures), анонімні функції, функції виконання часу компіляції, проміжки (ranges), та вбудовані концепції ітерації для контейнерів та автовивід типу для інструкцій. В D також з самого початку додали до функціональності C++ дизайн за контрактом, вбудоване модульне тестування, справжні модулі, збирач сміття, масиви як сутності першого класу, асоціативні масиви, динамічні масиви, слайси масивів, вкладені функції, ліниві обчислення, області (відкладеного) виконання коду та кращий і повністю реконструйований синтаксис шаблонів для динамічного узагальненого програмування. D також зберіг здатність C++ створювати програми низького рівня та розуміє вбудовані інструкції-вставки на асемблері. Множинне успадкування з C++ було замінено єдиним успадкуванням у стилі Java з інтерфейсами та домішками (mixins). З іншого боку, синтаксис декларацій, інструкцій та виразів D нагадує C++. D також має вбудовану підтримку коментарів документації, яка дозволяє автоматично створювати документацію з допомогою компілятора. В екосистему мови D також входить стандартна бібліотека phobos та надзвичайно продуманий менеджер пакунків Dub, що дозволяє автоматизувати компіляцію та збирання програми з допомогою простого json-файлу.

Hello World![ред. | ред. код]

import std.stdio;

void main()
{
    writeln("Hello world!");
}

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

Посилання[ред. | ред. код]

Джерела[ред. | ред. код]

  • Bright, Walter. D programming Language Specification (in English) (e-book ed.). 7227: Digital Mars (via Amazon). Memory Safety has an entire chapter, with recipes. It's a major theme of the language. Failures to reach this standard are defects.
  • Andrei Alexandrescu (August 2, 2010). Three Cool Things About D