AZUR ist streng typisiert. Jede Variable hat einen eindeutigen Typ, der sich nicht mehr ändert, nachdem er einmal festgelegt wurde. Jeder Ausdruck hat einen festen Typ, was der Grund für das Fehlen von Deklarationen außerhalb von Funktionsköpfen ist. Zu jedem Ausdruck wird der Typ berechnet. Dadurch steht der Typ einer Variablen automatisch fest, wenn ihr ein Ausdruck zugewiesen wird. Als Seiteneffekt wird dadurch auch gewährleistet, dass alle Variablen initialisiert sind, bevor sie benutzt werden.
Wird eine Prozedur oder eine Funktion aufgerufen, findet eine strenge Typüberprüfung statt. Die Anzahl der Parameter und deren Typ muss genau übereinstimmen. Eine Ausnahme davon bildet die Hauptprozedur AZUR, deren Parameter die Schnittstelle nach außen bilden.
Die Typüberprüfung, sowie das Anlegen aller Variablen findet vor dem Programmablauf beim Aufbau des Syntaxbaumes statt. Laufzeitfehler werden so auf ein Minimum reduziert.
Folgende Typen sind in AZUR definiert:
Typ | Abk. | Beschreibung |
Real | R | alle reellen Zahlen (umfasst damit REAL und INTEGER) |
String | S | beliebige Texte |
Bool | B | nimmt die logischen Werte TRUE oder FALSE an |
Zeitpunkt | ZP | ein beliebiger Zeitpunkt |
Distanz | ZD | eine Zeitdistanz, z.B. 4 Tage oder 1 Monat |
Intervall | ZI | ein Zeitintervall oder ein Realintervall |
ZR | ZR | eine Zeitreihe |
ZRList | ZL | eine Liste von Zeitreihen |
Tupel | TU | ein Tupel (Element einer Relation oder auch Menge von Komponenten) |
Relation | RL | Relation im Sinne einer relationalen Datenbank |
Datenbank | DB | Relationale Datenbank |
AxBox | AX | zur Anbindung von Graphik |
GeoPoint | GP | Koordinate X,Y |
Page | PG | Eine Reportseite |
Quant | Q | ein Stück Zeitreihe |
QuantList | QL | eine Liste mit Quanten |
Polygon | PO | eine Liste von Punkten und einige Attribute |
Layer | L | eine Liste von Polygonen und einige Attribute |
Karte | K | eine Liste von Layern und einige Attribute |
Array | A | ein Feld, das Strings enthält und mit Strings indiziert wird
(assoziatives Array) |
Report | RP | eine Liste von Pages |
Baum | BA | ein Baum |
Raster | RS | ein Raster (eine Matrix), z.B. Teil einer RasterDB |
RasterDB | RB | eine Raster-Zeitreihen-Datenbank |
GeoRange | GR | ein rechteckiger Bereich |
toposoft GmbH 26. Oktober 2022