D | ||
Datum první verze | 8. prosince 2001 | |
---|---|---|
Paradigma | imperativní , objektově orientovaný , procedurální | |
Autor | Walter Bright | |
Vývojář | D jazyková nadace | |
Poslední verze | 2.085.1 (5. dubna 2019) | |
Psaní na stroji | silný , statický , odvozený | |
Ovlivněno | C , C ++ , Java , C # , Eiffel , Python | |
Implementace | DMD, GDC , LDC | |
Operační systém | Linux , Windows , MacOS | |
Licence | Zvýšit | |
webová stránka | dlang.org | |
Přípona souboru | d, dd, di a def | |
D je programovací jazyk imperativ objektově orientovaný a multi-paradigma navržen pro programování systému .
Je inspirován mnoha jazyky, včetně C ++ , Java (se kterými sdílí pojem „ garbage collector “ a jednoduché dědičnosti), Eiffel (pro paradigma smluvního programování ).
D je ve verzi 2.x, zkráceně „D2“ (od 17. června 2007 ), a občas prochází drobnými specifikačními úpravami. Tyto transformace provádějí Walter Bright a Andrei Alexandrescu , kteří berou v úvahu připomínky a požadavky komunity. Verze 1.x jazyka je zastaralá a byla ukončena 31. prosince 2012 .
Jazyk D vytvořil Walter Bright vProsince 1999s jeho společností Digital Mars (původně se měl jmenovat Mars ) a je představován jako nástupce C , odtud jeho název (samotný jazyk C vystřídal jazyk B , který zase nevyplývá z žádného jazyka A, ale BCPL ).
Walter Bright si představil tento jazyk na základě zkušeností, které získal během vývoje překladačů pro jazyky C a C ++ . Návrh jazyka D si klade za cíl udržet úroveň výkonu těchto jazyků a překonat problémy spojené se syntaxí a sémantikou.
Zejména :
Za tímto účelem se jazyk D osvobodí od preprocesoru, používá moduly a má jednoznačnou syntaxi, což má za následek výrazné zrychlení rychlosti kompilace a usnadnění vytváření nástrojů pro analýzu kódu. Spolu s moderními pojmy obsaženými v jazyce se tedy zvyšuje produktivita.
"Pokud jazyk dokáže obnovit 90% výkonu C ++, ale pouze 10% jeho složitosti, stojí to za to." "
- Walter Bright
Spolu s jazykovou specifikací je vyvinut oficiální kompilátor DMD . Zaměřuje se na strojový jazyk . Celý jeho kód je otevřený, což vám umožňuje rychle opravit jakékoli problémy, které se vyskytly, nebo vytvořit svůj vlastní kompilátor pomocí jiné základny ( backend ). V současné době existuje pro platformy Linux , FreeBSD , Mac OS X a Windows .
GNU kompilátor, GDC , míchání DMD frontend a gcc backend je ve vývoji.
Kompilátor s licencí BSD, LDC , který kombinuje DMD frontend a LLVM backend je stále ve vývoji. Je možné sestavit do 64 bitů, podporuje většinu D jazyka ve svých verzích 1 a 2, a umožňuje vytváření dynamických knihoven bez ohledu na Linux , Mac OS X nebo platformu Windows, na rozdíl od svého protějšku DMD, které nemohou dosáhnout. Úkol na Mac OS X .
D ve verzi 2 je jazyk pro více paradigmat, který zahrnuje většinu základních pojmů objektově orientovaného, generického a funkčního programování, přičemž ponechává možnost zahrnout montážní kód nebo dokonce propojit C kód.
Podporovaná paradigmata:
Do svých specifikací zavádí prvky programování kontraktů , testování jednotek a skutečné moduly, které zlepšují kvalitu a usnadňují údržbu kódu. Asociativní pole a pole s „řezy“, přímo zahrnutými do jazyka, ukazatele (i když je jejich použití ve srovnání s C nebo C ++ značně omezeno), odpojitelný „ garbage collector “ a odvození typu umožňují vytvořit jazyk D to je silné i expresivní. Jazyk také umožňuje zahrnout přímo do zdrojového kódu napsaného v C nebo kódu sestavy .
Programování objektů D podporuje zapouzdření , polymorfismus , jednoduchou dědičnost rozšířenou o rozhraní a skutečné „vlastnosti“. Instance je pouze referenční a umožňuje kontrolu nad inicializace atributů statické. Výjimky a mechanismus ochrany rozsahu umožňují zjednodušit správu chyb.
Funkční možnosti jazyka jsou vyjádřeny několika způsoby: anonymní nebo lambda funkce, čisté funkce, jejichž čistotu kontroluje překladač, líné vyhodnocení argumentů. Vývoj jazyka bere v úvahu multithreading tím, že umožňuje kompilátoru ověřit neměnnost objektů v paměti.
Nakonec D obsahuje velmi výkonný systém „ šablon “, který umožňuje používat většinu jazyka v rámci metaprogramování . Zahrnuje zejména pojem omezení parametrů šablony, mixinů a vyhodnocení kódu při kompilaci (Compile Time Function Evaluation). Kompilátor má přístup k zadávání dat v době kompilace a umožňuje podmíněnou kompilaci, která umožňuje optimalizovat generování kódu.
Zde je příklad slavného „ Hello World “ v jazyce D:
import std.stdio; void main() { writeln("Hello world!"); }Další příklad, který zobrazuje seznam argumentů spojených s programem, když je spuštěn z příkazového řádku:
import std.stdio; void main(string[] args) { foreach (int i, string arg; args) { writeln("args[", i, "] = '", arg, "'"); } }Verze 2.0 také přijímá typ stringjako alias immutable(char)[]a kromě writeln()toho také obsahuje writefln(), což umožňuje jednodušší vyvolání proměnných (srov. Stackoverflow ).
BCPL jazyk byl vynalezen v roce 1966, a jeho nástupce byl B jazyk (1969), který v pořadí byl nahrazen C jazyka (1970). Nástupce C by pak mohl být pojmenován D nebo P podle abecedního pořadí nebo pořadí písmen BCPL . Nakonec to byl C ++ (1983). Takto bylo vybráno písmeno D (1999) ve vztahu k novému nástupci.
DConf je konference, která sdružuje vývojáře jazyka D: Bylo koná každoročně od roku 2013 a je organizován D jazykového základu.
webová stránka | Rok | Termíny | Umístění |
---|---|---|---|
DConf 2013 | 2013 | 1. až 3. května | Menlo Park , Kalifornie , Spojené státy |
DConf 2014 | 2014 | 21. až 23. května | Menlo Park , Kalifornie , Spojené státy |
DConf 2015 | 2015 | 27. až 29. května | Orem , Utah , Spojené státy |
DConf 2016 | 2016 | 4. až 6. května | Berlín , Německo |
DConf 2017 | 2017 | 4. až 6. května | Berlín , Německo |
DConf 2018 | 2018 | 2. - 4. května | Mnichov , Bavorsko , Německo |
DConf 2019 | 2019 | 1. až 8. května | Londýn , Velká Británie |