Datentypen

Da die Deutsche Programmiersprache statisch typisiert ist, hat jeder Ausdruck (z.B. mathematische Ausdrücke), jede Variable und jede Funktion einen festen Datentyp.

Der Typ von Variablen, Funktionen und Ausdrücken kann sich nicht zur Laufzeit ändern, er wird zur Kompilierzeit festgelegt.

Einfache Datentypen

TypnameBeschreibungWertebereichLiteralBeispiel
ZahlEine 64 Bit große, ganze Zahl-2^63 bis +2^63Eine Reihe von Ziffern, z.B. 42Die Zahl x ist 69.,
1 plus -7
KommazahlEine 64 Bit große, gleitkomma Zahlca. -1,797x10^308 bis
1,797x10^308 mit 16 Dezimalstellen
Ein Zahlenliteral mit Nachkommastellen, z.B. 3,1415Die Kommazahl x ist 6,5.,
2 durch 0,5
WahrheitswertEin Wahrheitswert (8 Bit groß)wahr oder falschwahr oder falschDer Wahrheitswert x ist wahr.,
2 gleich 2
BuchstabeEin 4 Byte großes, mit utf-8 kodiertes Zeichen0 - 65535Ein utf8 Zeichen zwischen einfachen Anführungszeichen, z.B. ‘a’ oder ‘\n’Der Buchstabe x ist 'd'.
TextEine utf-8 kodierte Aneinanderreihung mehrerer Buchstabenbeliebig großBeliebig viele Buchstaben zwischen (englischen) Anführungszeichen, z.B. “Hallo\n”Der Text x ist "abc".,
"Hallo" verkettet mit " du da"

Anders als in anderen Programmiersprachen:

Escape-Sequenzen

Escape-Sequenzen sind Zeichenkombinationen, die für Zeichen stehen, welche man nicht normalerweise in Text- oder Buchstabenliterale schreiben kann.

NameEscape-SequenzASCII Code
Zeilenvorschub\n10
Wagenrücklauf\r13
Rückschritt\b8
Tabulator\t9
Akustisches Signal\a7
Rückstrich\\92
Einfaches Anführungszeichen*\'39
Doppeltes Anführungszeichen**\"34

*: Nur innerhalb eines Buchstaben-Literals.
**: Nur innerhalb eines Text-Literals.

Listen

Listen sind beliebig große Ansammlungen von Werten. Da DDP statisch typisiert ist kann eine Liste nur Werte desselben Datentyps enthalten. Der Typname einer Liste ist im Allgemeinen der Element-Typname entsprechend dekliniert mit Liste angehängt (Zahl -> Zahlen Liste, Text -> Text Liste). Bei Benutzerdefinierten Typen (Kombinationen) kann die richtige Deklination (noch) nicht geparset werden, deshalb wird nicht dekliniert, sondern einfach nur Liste angehängt (siehe Kombinationslisten) Eine Liste kann zur Laufzeit wachsen und schrumpfen. Wie man mit Listen arbeitet, wird in dem Artikel Operatoren unter Listen Operatoren beschrieben.

Listen Literale

Ein Listen Literal sieht ähnlich wie eine gewöhnliche Aufzählung aus, allerdings in einen kleinen Satzbaustein verpackt um Mehrdeutigkeiten beim Programmieren zu verhindern. Die allgemeine Form sieht so aus: eine[r] Liste, die aus x[, y, z] besteht. Es kann eine oder einer je nach grammatischem Kontext benutzt werden und auf das aus müssen einer oder mehrere Ausdrücke desselben Typs folgen.

Leere Listen können so erstellt werden: eine[r] leere[n] (Typname) Liste.

Listen mit einem einzigen Element können auch einfach durch (Wert) als (Typname) erstellt werden.

Es gibt auch noch einen weiteren Sonderfall: Listen können bei der Variablen Deklaration auch mit der Die (Typname) Liste (Variablenname) ist <Zahl> Mal <Wert> Syntax erstellt werden. Dabei wird die Liste mit dem Wert initialisiert, der so oft in der Liste vorkommt, wie die Zahl angibt. Das ist besonders nützlich um relativ große Listen mit einem Standardwert zu erstellen, da bei dieser Syntax nur ein Mal der ganze Speicher allokiert wird, anstatt für jedes Element einzeln.

Beispiele

Die Zahlen Liste z ist eine Liste, die aus 1, 2, 3 besteht.
Die Text Liste t ist eine Liste, die aus "Hallo", "Welt" besteht.

Die Zahlen Liste z2 ist eine leere Zahlen Liste.
Die Text Liste t2 ist "Hallo" als Text Liste.
TypnameBeispiel
Zahlen ListeDie Zahlen Liste z ist eine Liste, die aus 1, 2, 3 besteht.
Kommazahlen ListeDie Kommazahlen Liste z ist eine Liste, die aus 1,2, 3,2, 3,1415 besteht.
Wahrheitswert ListeDie Wahrheitswert Liste b ist eine Liste, die aus wahr, falsch, wahr besteht.
Buchstaben ListeDie Buchstaben Liste b ist eine Liste, die aus 'b', 'h', 'z' besteht.
Text ListeDie Text Liste t ist eine Liste, die aus "Hallo", "du", "da" besteht.

Bemerkung

Eigentlich würde man ja erwarten, dass in der Aufzählung eines Listen Literals noch ein ‘und’ vorkommen müsste (eine Liste, die aus 1, 2 und 3 besteht). Das würde aber zu Mehrdeutigkeiten in Boolschen Ausdrücken führen (eine Liste, die aus wahr und falsch besteht), und da die Aufzählung, grammatisch gesehen, kein ‘und’ braucht wird es in Listen Literalen weggelassen.

Kombinationen

Kombinationen (structs in C) sind benutzerdefinierte zusammengesetzte Datentypen, die eine oder mehrere Variablen in einem Typ zusammenfassen. Mehr zu Kombinationen ist im Artikel Kombinationen zu finden.