D — об'єктно-орієнтована, імперативна, багатопарадигмова мова програмування. Мова створена Волтером Брайтом (англ. Walter Bright), засновником компанії Digital Mars. Хоча D виникла як реінжиніринг , D — це самостійна мова, в якій змінено деякі основні принципи C++; також багато взято із інших мов, зокрема Java, Python, Ruby, C# і Eiffel.
D programming language | |
---|---|
Парадигма | Мультипарадигмальна мова програмування: процедурна, об'єктно-орієнтована, функційна, узагальнена |
Дата появи | 8 грудня 2001 |
Творці | Walter Bright, (від 2006) |
Розробник | Digital Mars, (від 2006) |
Останній реліз | 2.100.0 (10 травня 2022 ) |
Система типізації | строга, статична |
Основні реалізації | DMD (), GDC, LDC |
Під впливом від | C, , C#, Eiffel, Java, Python, Ruby |
Вплинула на | , , Vala, |
Операційна система | DMD: Unix-подібні (FreeBSD, Linux тощо), Windows, MacOS X |
Ліцензія | GPL/ (DMD frontend), Boost (стандартна бібліотека та бібліотека часу виконання), доступні коди (DMD backend), Повністю відкритий код (LDC та GDC) |
Звичайні розширення файлів | . |
Вебсайт | dlang.org |
|
В D зроблено спробу поєднати швидкість мов, які використовують компіляцію, із безпекою і потужною виразністю сучасних мов з динамічною типізацією. Особливістю D є те, що код зазвичай такий же швидкий, як еквівалентний на C++, при цьому код коротший і в ньому застосовується безпечне виділення пам'яті, у той час, як перевірка меж, розробка за контрактами і типи, безпечні для багатопотоковості, дозволяють зменшити кількість помилок у програмному продукті.
Визначення типу (), автоматичне управління пам'яттю, вбудоване модульне тестування і «синтаксичний цукор» для основних типів забезпечують можливості коротшого циклу розробки програм з меншою кількістю помилок.
Основні можливості
Мова програмування 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!"); }
Див. також
- Hello world!
- Приклади для вивчення http://www.rosettacode.org/wiki/Category:D
Примітки
- . Архів оригіналу за 16 січня 2021. Процитовано 10 травня 2021.
- . Архів оригіналу за 15 вересня 2014. Процитовано 23 серпня 2014.
Посилання
- Інтерактивний тур з мови програмування D [ 9 січня 2017 у Wayback Machine.]
Джерела
- 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
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
D ob yektno oriyentovana imperativna bagatoparadigmova mova programuvannya Mova stvorena Volterom Brajtom angl Walter Bright zasnovnikom kompaniyi Digital Mars Hocha D vinikla yak reinzhiniring C D ce samostijna mova v yakij zmineno deyaki osnovni principi C takozh bagato vzyato iz inshih mov zokrema Java Python Ruby C i Eiffel D programming languageParadigma Multiparadigmalna mova programuvannya procedurna ob yektno oriyentovana funkcijna uzagalnenaData poyavi 8 grudnya 2001Tvorci Walter Bright vid 2006 Rozrobnik Digital Mars vid 2006 Ostannij reliz 2 100 0 10 travnya 2022 2 roki tomu 2022 05 10 Sistema tipizaciyi stroga statichnaOsnovni realizaciyi DMD GDC LDCPid vplivom vid C C C Eiffel Java Python RubyVplinula na Vala Operacijna sistema DMD Unix podibni FreeBSD Linux tosho Windows MacOS XLicenziya GPL DMD frontend Boost standartna biblioteka ta biblioteka chasu vikonannya dostupni kodi DMD backend Povnistyu vidkritij kod LDC ta GDC Zvichajni rozshirennya fajliv code d code Vebsajt dlang org Mediafajli u Vikishovishi V D zrobleno sprobu poyednati shvidkist mov yaki vikoristovuyut kompilyaciyu iz bezpekoyu i potuzhnoyu viraznistyu suchasnih mov z dinamichnoyu tipizaciyeyu Osoblivistyu D ye te sho kod zazvichaj takij zhe shvidkij yak ekvivalentnij na C pri comu kod korotshij i v nomu zastosovuyetsya bezpechne vidilennya pam yati u toj chas yak perevirka mezh rozrobka za kontraktami i tipi bezpechni dlya bagatopotokovosti dozvolyayut zmenshiti kilkist pomilok u programnomu produkti Viznachennya tipu avtomatichne upravlinnya pam yattyu vbudovane modulne testuvannya i sintaksichnij cukor dlya osnovnih tipiv zabezpechuyut mozhlivosti korotshogo ciklu rozrobki program z menshoyu kilkistyu pomilok Osnovni mozhlivostiMova programuvannya D rozroblyalasya odnochasno z rozvitkom kompilyatora dlya ciyeyi movi i pislya zasvoyennya urokiv otrimanih iz praktichnogo vikoristannya C Hocha mova D vikoristovuye bagato ponyat C i C vona takozh vidkidaye deyaki nevdali na dumku rozrobnikiv pidhodi cih mov abo zh vikoristovuye zovsim inshij pidhid yak i sintaksis dlya dosyagnennya pevnih cilej Pochatkovij kod na D ne sumisnij z C odnak D bula obmezhena pravilom sho bud yakij kod dlya C povinen zalishatisya sumisnim z kodom dlya D i povinen vikonuvatis odnakovo D nabagato ranishe za C otrimala zasobi dlya funkcijnogo programuvannya taki yak zamikannya closures anonimni funkciyi funkciyi vikonannya chasu kompilyaciyi promizhki ranges ta vbudovani koncepciyi iteraciyi dlya kontejneriv ta avtovivid tipu dlya instrukcij V D takozh z samogo pochatku dodali do funkcionalnosti C dizajn za kontraktom vbudovane modulne testuvannya spravzhni moduli zbirach smittya masivi yak sutnosti pershogo klasu asociativni masivi dinamichni masivi slajsi masiviv vkladeni funkciyi linivi obchislennya oblasti vidkladenogo vikonannya kodu ta krashij i povnistyu rekonstrujovanij sintaksis shabloniv dlya dinamichnogo uzagalnenogo programuvannya D takozh zberegla zdatnist C stvoryuvati programi nizkogo rivnya ta rozumiye vbudovani instrukciyi vstavki na asembleri Mnozhinne uspadkuvannya z C bulo zamineno yedinim uspadkuvannyam u stili Java z interfejsami ta domishkami mixins Z inshogo boku sintaksis deklaracij instrukcij ta viraziv D nagaduye C D takozh maye vbudovanu pidtrimku komentariv dokumentaciyi yaka dozvolyaye avtomatichno stvoryuvati dokumentaciyu z dopomogoyu kompilyatora V ekosistemu movi D takozh vhodit standartna biblioteka phobos ta nadzvichajno produmanij menedzher pakunkiv Dub sho dozvolyaye avtomatizuvati kompilyaciyu ta zbirannya programi z dopomogoyu prostogo json fajlu Hello World import std stdio void main writeln Hello world Div takozhHello world Prikladi dlya vivchennya http www rosettacode org wiki Category DPrimitki Arhiv originalu za 16 sichnya 2021 Procitovano 10 travnya 2021 Arhiv originalu za 15 veresnya 2014 Procitovano 23 serpnya 2014 PosilannyaInteraktivnij tur z movi programuvannya D 9 sichnya 2017 u Wayback Machine DzherelaBright 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