Zum Inhalt springen

D (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. August 2007 um 20:23 Uhr durch 217.235.54.143 (Diskussion) (Beispiel). Sie kann sich erheblich von der aktuellen Version unterscheiden.

D ist eine seit 1999 von Walter Bright entwickelte Programmiersprache, die sich stark an C++ anlehnt. Das gilt vor allem für die Syntax, während sie auf anderen Gebieten zu stark abweicht, um noch als C++-Variante gesehen zu werden. D soll sich ebenso wie C++ für die Systemprogrammierung eignen. Sie unterstützt im Unterschied zu ihren Vorläufern unter anderem eine integrierte automatische Speicherbereinigung, Design By Contract und Module. Andere Sprachmittel wie überladbare Operatoren und Templates sind dagegen von C++ inspiriert. Im Laufe der Entwicklung wurde sie auch von anderen Sprachen, besonders Java und C#, beeinflusst.

Am 3. Januar 2007 wurde Version 1.0 nach fast sieben Jahren Entwicklungszeit veröffentlicht.[1]

Compiler

DMD

DMD (Digital Mars D) ist ein Compiler der immer aktuell ist, er ist ein Referenzcompiler von Walter Bright. Er ist für Windows und Linux verfügbar. Das Backend ist aber nicht Open Source.

DMD

GDC

GDC (GNU D Compiler) ist ein quelloffener Compiler, der GCC als Backend verwendet. Allerdings unterstützt er neue Features von D erst, wenn diese auch in DMD integriert worden sind. Dazu wird das Frontend von DMD übernommen und angepasst.

GDC

Features

Speicherverwaltung

Der Speicher wird durch einen Garbage Collector verwaltet. Wenn mehr Kontrolle über die Speicherverwaltung erforderlich ist, kann der Garbage Collector für einzelne Objekte – oder auch für das ganze Programm – deaktiviert werden. Durch überladene Operatoren und die C-Funktionen malloc und free können auch eigene Speicherverwaltungsmechanismen implementiert werden.

Interaktion

Die C-Binärschnittstelle (ABI) wird genau so wie alle grundlegenden C-Typen unterstützt, wodurch Kompatibilität zu in C geschriebenen Bibliotheken gewährleistet ist. Weiterhin ist die C-Standardbibliothek teil des D-Standards. Die C++-ABI hingegen wird nicht unterstützt.

Beispiel

// Programm, geschrieben in D, das seine Parameter ausgibt

import std.stdio; // für writefln()
 
void main(char[][] args) // Der main-Funktion werden die Parameter als ein Array von Strings übergeben
{                        // Strings sind Arrays von Buchstaben (char[]), deswegen ist ein Array von Strings char[][].   
    foreach(int i, char[] a; args) // Für jeden Eintrag im Array args wird der Index in
    {                              // i und der Inhalt in a gespeichert und ausgegeben.
      writefln("args[%d] = '%s'", i, a); 
    }
}

Ruft man dieses Programm unter Windows mit beispiel.exe -win -s auf, dann gibt es diesen Text in einem Konsolen-Fenster aus:

args[0] = 'beispiel.exe'     
args[1] = '-win'       
args[2] = '-s'  

Siehe auch: Hallo Welt in D

Literatur

Siehe auch

Quellen

  1. Heise Online: Eleganter programmieren: D ist da, 3. Januar 2007 – 14:52