D (programovací jazyk)
| Paradigma: | multiparadigmatický: imperativní, objektově orientovaný, funkcionální, generický, paralelní |
|---|---|
| Vznikl v: | 2001[1] |
| Vývojář: | Walter Bright, Andrei Alexandrescu (od roku 2006) |
| Poslední verze: | 2.058 / 1.073[1][2] / 15.02.2012[3] |
| Typová kontrola: | silná, statická |
| Hlavní implementace: | DMD (referenční implementace), GDC, LDC |
| Ovlivněn jazyky: | C, C++, C#, Java, Eiffel, Python, Ruby |
| Ovlivnil jazyky: | MiniD, DScript, Vala, Qore |
| OS: | DMD: Linux, FreeBSD, Windows, Mac OS X, GDC, LDC: UN*X, Windows, Mac OS X |
| Licence: | GPL/Artistic (DMD frontend), Boost (standardní knihovna a runtime), Dostupný kód (DMD backend), Plně open-source (LDC a GDC)[4] |
| Web: | dlang.org |
D je objektově-orientovaný, imperativní, multi-paradigmatický a systémový programovací jazyk, jehož autorem je Walter Bright z firmy Digital Mars. Vznikl jako předělávka jazyka C++, ale není to totéž. D přestavěl některé rysy C++ a je ovlivněn jazyky jako Java, C# a Eiffel. Stabilní verze 1.0 byla vydána 2. ledna 2007.
Designové cíle jazyka D jsou zkombinovat výkon kompilovaných jazyků s bezpečnostní a expresivní silou moderních dynamických jazyků. Idiomatický D kód je obvykle stejně rychlý jako ekvivalentní C++ kód a přitom je kratší a paměťově bezpečný. Typová inference a automatická správa paměti umožňují rychlejší vývoj, přičemž bounds checking, design by contract, popř. typový systém připravený na paralelní programování pomáhají omezit počet chyb.
Obsah |
Vlastnosti [editovat]
D se poučil tam, kde má v praxi C++ problémy. I když používá mnoho konceptů jazyků C a C++, také se některých zbavuje, a tudíž není kompatibilní s C/C++ zdrojovým kódem. Přidává do funkcionality C++ implementací design by contract, unit testy, pravé moduly, garbage collection, first class pole, asociativní pole, dynamická pole, array slicing, vnořené funkce, vnořené třídy, closures a lambda funkce, anonymní funkce, interpretaci jazyka při kompilaci, lazy evaluation a redesign template syntaxe. D může být stejně jako C++ použit pro nízkoúrovňové programování díky zabudované podpoře inline assembleru. Vícenásobná dědičnost je nahrazena rozhraními podobně, jako v Javě a mixiny. Syntaxe deklarace, příkazů a výrazů je stejná, jako v C++.
Inline assembler představuje rozdíl mezi D a aplikačními jazyky jako Java a C#. Inline assembler umožňuje programátorovi vkládat kód v assembleru, což je technika používaná systémovými programátory pro přístup k nízkoúrovňovým vlastnostem procesoru. To je zapotřebí při psaní programu který bude pracovat přímo s hardwarem, jako například operační systém a ovladače zařízení.
D má zabudovanou podporu dokumentačních komentářů a podporuje automatické generování dokumentace.
Ukázka kódu [editovat]
Tento program vytiskne předané parametry. Funkce main je vstupní bod programu, a args je pole řetězců obsahující parametry příkazové řádky. Řetězec (string) je v D definovaný jako alias na immutable(char)[] (pole neměnitelných znaků).
Smyčka foreach projde postupně všechny řetězce v poli args a vypíše je pomocí funkce writefln (formátovaný výstup s odřádkováním). Jednotlivým argumentům ve foreach je automaticky přiřazen datový typ podle kontextu; i datový typ int, line typ string. i zároveň slouží jako automatický index určující kolikátým prvkem je právě iterováno.
import std.stdio : writefln; void main(string[] args) { foreach (i, arg; args) writefln("args[%d] = '%s'", i, arg); }
Externí odkazy [editovat]
- czwiki4d - stránky jenž si kladou za cíl poskytovat informace o D v českém jazyce
- D Programming Language - oficiální stránky jazyka D (anglicky)
- wiki4D - neoficiální wiki zabývající se D (anglicky)
Reference [editovat]
V tomto článku byl použit překlad textu z článku D (programming language) na anglické Wikipedii.
- ↑ a b changelog
- ↑ http://dlang.org/changelog.html
- ↑ http://forum.dlang.org/post/jhfdcu$iht$1@digitalmars.com
- ↑ http://dlang.org/faq.html