D ist eine Programmiersprache, die sich äußerlich stark an C++ anlehnt. Ebenso wie C++ ist D für die Systemprogrammierung geeignet. D wird seit 1999 von Walter Bright entwickelt und wurde am 3. Januar 2007 in der stabilen Version 1.0 veröffentlicht.[5]
D | |
---|---|
![]() | |
Basisdaten | |
Paradigmen: | imperativ, objektorientiert, generisch, modular |
Erscheinungsjahr: | 2007 |
Designer: | Walter Bright |
Entwickler: | Walter Bright |
Aktuelle Version: | 1.045 (stable), 2.030 (alpha) (11. Mai 2009[1][2]) |
Typisierung: | Stark, statisch |
Wichtige Implementierungen: | DMD[3], GDC[4], LDC |
Beeinflusst von: | C, C++, Java, C# |
dlang.org |
Seit dem 17. Juni 2007 gibt es einen experimentellen 2.0-er-Version-Zweig, in dem die Sprache weiter entwickelt wird.
Sprachmittel
Die Sprache D übernimmt die meisten Sprachmittel der Sprache C. Auch die C-Standardbibliothek ist Bestandteil von D. Dadurch besteht Kompatibilität zu in C geschriebenen Programmen. Kompatibilität mit C++ gibt es hingegen nicht.
D ist eine objektorientierte, imperative Programmiersprache und verfügt über Templates und überladbare Operatoren. Gegenüber C++ bietet es außerdem Design by contract, Module und eine integrierte automatische Speicherbereinigung. Letztere kann sowohl global als auch für einzelne Objekte deaktiviert und durch eine eigene Speicherverwaltung ersetzt werden.
Compiler
Es gibt mehrere Compiler für die Sprache D, den DMD (Digital Mars D)[3] vom Erfinder Walter Bright für Windows und Linux, sowie GDC [4], eine Implementierung für GCC für verschiedene Plattformen.
Des Weiteren gibt es inzwischen drei Compiler für D, die selbst in D programmiert wurden. Dies sind der DIL-Compiler[6], Dang[7] und der LDC[8], welche allesamt kompatibel zu LLVM sind.
Entwicklungsumgebungen
D wird zunehmend von verschiedenen IDEs unterstützt. Zum Einsatz kommen unter anderen die Editoren Entice Designer, Emacs, Vim, Scite, Scite4D, Smultron, TextMate, Zeus und Geany. Vim und Scite4D unterstützen Syntaxhervorhebung und Autovervollständigung. Für TextMate existiert eine Erweiterung und Code::Blocks unterstützt D teilweise. Allerdings werden Autovervollständigung und Refactoring momentan von keiner IDE für D komplett bereitgestellt. Darüber hinaus gibt es noch für Eclipse mit dem Plugin Descent[9] Unterstützung für D.
Zudem gibt es in D geschriebene IDEs, wie z. B. Poseidon. Letztere unterstützt Autovervollständigung, Refactoring und hat einen integrierten Debugger.
D Anwendungen können mit jedem beliebigen C/C++ Debugger debuggt werden, wie z.B. GDB oder WinDbg, wobei die Unterstützung für bestimmte grundlegende Sprachfeatures stark eingeschränkt ist. Ein Debugger speziell für D ist Ddbg für Windows. Der kommerzielle ZeroBUGS Debugger für Linux unterstützt D experimentell. Ddbg kann mit den verschiedensten IDEs oder von der Kommandozeile aus benutzt werden, während ZeroBUGS eine eigene GUI mitbringt.
Programmbeispiel
// Programm, geschrieben in D, das seine Parameter ausgibt
import std.stdio; // importiert die Funktion writefln()
void main(string[] args)
{
foreach(int i, string a; args) {
writefln("Parameter %d = '%s'", i, a); // Jeder Eintrag im Feld args wird ausgegeben.
}
}
Erläuterung
Der main-Funktion werden die Parameter als ein Feld von Zeichenketten (Strings) übergeben. Ruft man dieses Programm unter Windows mit beispiel.exe -win -s auf, dann gibt es diesen Text in einem Konsolen-Fenster aus:
Parameter 0 = 'beispiel.exe' Parameter 1 = '-win' Parameter 2 = '-s'
Siehe auch: Hallo Welt in D
Weblinks
- Wikibooks: D Programming (englisch) – Lern- und Lehrmaterialien
- Die Programmiersprache D bei Digital Mars (Downloads, englisch)
- dsource.org D-Projektseite (englisch)
- Manfred Hansen: Programmiersprache D. 2008, 163 S. (PDF-Datei, 1,1 MB)
Quellen
- ↑ D 1.0 Change Log, http://www.digitalmars.com/d/1.0/changelog.html
- ↑ D 2.0 Change Log, http://www.digitalmars.com/d/2.0/changelog.html
- ↑ a b DMD (Digital Mars D): DMD
- ↑ a b GDC (GNU D Compiler):GDC
- ↑ Heise Online: Eleganter programmieren: D ist da, 3. Januar 2007 – 14:52
- ↑ DIL-Projektseite
- ↑ Dang-Projektseite
- ↑ LDC-Projektseite
- ↑ Descent-Projektseite
Literatur
- Tobias Wassermann, Christian Speer: Programmieren in D, 1. Auflage (November 2007), 165 Seiten, entwickler.press, ISBN 978-3939084693.