Attribute (Auswahl)
| Attribut | Bedeutung |
|---|
T'First, T'Last | kleinster/größter Wert |
T'Image (X), T'Value (S) | Wert ↔ Text |
T'Succ, T'Pred | Nachfolger/Vorgänger |
T'Pos, T'Val | Position ↔ Wert |
A'Length, A'Range | Array-Größe und Indexbereich |
T'Min, T'Max | Minimum/Maximum |
T'Size | Größe in Bits |
adawith Ada.Text_IO; use Ada.Text_IO;
procedure Main is
type Ampel is (Rot, Gelb, Gruen);
Feld : array (1 .. 4) of Integer := (1, 2, 3, 4);
begin
Put_Line (Ampel'Image (Ampel'First) & " " & Ampel'Image (Ampel'Last));
Put_Line (Ampel'Image (Ampel'Val (1)) & Integer'Image (Ampel'Pos (Gruen)));
Put_Line (Integer'Image (Integer'Min (3, 7)) & Integer'Image (Integer'Max (3, 7)));
Put_Line (Integer'Image (Feld'Length) & Integer'Image (Feld'First) & Integer'Image (Feld'Last));
Put_Line (Integer'Image (Integer'Size) & Integer'Image (Character'Size));
Put_Line (Boolean'Image (Boolean'Succ (False)));
Put_Line (Integer'Image (Integer'Value (" 12 ")));
end Main;
AusgabeROT GRUEN
GELB 2
3 7
4 1 4
32 8
TRUE
12
Operatoren
| Art | Operatoren |
|---|
| Arithmetik | + - * / mod rem ** abs |
| Vergleich | = /= < <= > >= |
| Logik | and or xor not, and then, or else |
| Zugehörigkeit | in, not in |
| Verkettung | & |
Typische Fehler
adaprocedure Main is
X : Integer := "text";
begin
null;
end Main;
Fehlermeldungexpected type "Standard.Integer"
adaprocedure Main is
begin
Put_Line ("x");
end Main;
Fehlermeldung"Put_Line" is undefined
Weiterführende Quellen
- learn.adacore.com: interaktive Kurse (Introduction to Ada, SPARK)
- adaic.org: Ada Information Clearinghouse und Referenzhandbuch (Ada 2022 RM)
- alire.ada.dev: Paketmanager mit hunderten Bibliotheken
Merke
- Ada: starke Typisierung, Laufzeitprüfungen, Tasks und Verträge für zuverlässige Software
- Wertebereiche (
range) und Subtypen verhindern ganze Fehlerklassen - GNAT, Alire und SPARK bilden das moderne Ökosystem
Aufgabe
Portiere ein kleines C-Programm nach Ada und beobachte, welche Fehler der Compiler früher meldet.