Abo
  • IT-Karriere:

Ada - numerische Typen

In vielen Programmiersprachen stehen Programmierern eine Reihe von vordefinierten Ganzzahltypen zur Verfügung, die zum Beispiel 8, 16, 32 und 64 Bit einnehmen (in der Regel gibt es noch Varianten mit oder ohne Vorzeichen). Andere Wertebereiche sind nicht möglich.

Stellenmarkt
  1. Evangelische Bank eG, Kassel
  2. Versicherungskammer Bayern, München

In Ada hingegen können Programmierer ihre eigenen Ganzzahltypen völlig frei definieren, so dass sie am besten zum Anwendungsbereich passen. Ist zum Beispiel ein Winkel in Grad gefragt, kann der Typ so definiert werden:

          Type Angle is range 0 .. 359;

Werte außerhalb dieses Bereichs sind für Variablen dieses Typs nicht zulässig. Eine Zuweisung, die diese Eigenschaft verletzen würde, zum Beispiel


          X : Angle := 365;     -- das ist ein Fehler
          Y : Angle := 359;
          Y := Y + 1;           -- hier entsteht ein Fehler

erzeugt entweder einen Fehler zur Laufzeit oder der Fehler wird, in einfachen Fällen wie diesem, sofort vom Compiler entdeckt.

Ein Fehler ist es ebenfalls, zu einem Winkel von 359 Grad ein Grad zu addieren, denn man würde ja den Wertebereich verlassen. Aber wäre es nicht praktischer, wieder bei 0 Grad anzukommen? Das kann in Ada mit sogenannten modularen Typen erreicht werden:


          Type Mod_Angle is mod 360;

Diese Deklaration definiert wieder einen Typ mit einem Wertebereich von 0 bis 359, jetzt werden aber Berechnungen mit diesem Typ modular ausgeführt:

          X : Angle := 365;	     --  das ist immer noch ein Fehler
          Y : Angle := 359;
          Y := Y + 1;                --  das ist OK, Y ist nun 0

Diese numerischen Typen sind ein Beispiel dafür, wie Ada es ermöglicht, näher an der zu lösenden Aufgabenstellung zu sein als mit vielen andere Programmiersprachen. Natürlich kann für einen Winkel einfach eine 16-Bit-Variable verwendet werden, dann muss aber überall überprüft werden, dass Berechnungen korrekt sind und keine unsinnigen Winkel berechnet werden.

Ada ermöglicht es Programmierern zu dokumentieren, was diese 16-Bit-Variable (denn auch in Ada wird der Compiler vermutlich 16 Bit für unseren Winkel reservieren) darstellen soll; der Compiler beziehungsweise die Laufzeitchecks nehmen die nötigen Überprüfungen automatisch vor.

Diese numerischen Typen sind ein Beispiel dafür, wie Ada es Programmierern leichter macht, in der Problemdomäne zu bleiben, in der die Begriffe des zu lösenden Problems verwendet werden (Winkel, Temperatur, Geschwindigkeit und so weiter), statt gleich in die Lösungsdomäne zu wechseln, wo andere Begriffe wichtig sind, zum Beispiel die Auswahl zwischen 8 Bit oder 16 Bit für den Winkel. Der nächste Abschnitt ist ebenfalls ein Beispiel dafür.

 Ada und Spark: Mehr Sicherheit durch bessere ProgrammiersprachenAda - Representation Clauses 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


Anzeige
Top-Angebote
  1. (u. a. Tropico 6 für 24,99€, PSN Card 10€ für 9,49€, PSN Card 20€ für 18,99€)
  2. (u. a. Switch-Spiele: Daemon X Machina für 49,99€, The Legend of Zelda: Link's Awakening; PS4...
  3. GRATIS im Ubisoft-Sale
  4. 329,00€

demon driver 25. Jun 2019

Von "unabgängiger" kann sich niemand was kaufen, und konsequent dürfte man dann nur noch...

demon driver 24. Jun 2019

Nix

SirFartALot 13. Jun 2019

das mag ja fuer Auftragsprogrammierer oder Freelancer normal zu sein, die...

\pub\bash0r 12. Jun 2019

Wobei ausgerechnet Java (und Applets) eigentlich ein sehr gutes Sicherheitsmodell haben...

kayozz 12. Jun 2019

Ja, C# bzw. .NET hat auch Schwächen. Aber das Argument würde ich so nicht stehen...


Folgen Sie uns
       


Geforce RTX 2070 Super und Geforce RTX 2060 Super - Test

Die Geforce RTX 2070 Super und die Geforce RTX 2060 Super sind Nvidias neue Grafikkarten für 530 Euro sowie 420 Euro. Beide haben 8 GByte Videospeicher und unterstützen Raytracing in Spielen.

Geforce RTX 2070 Super und Geforce RTX 2060 Super - Test Video aufrufen
Indiegames-Rundschau: Epische ASCII-Abenteuer und erlebnishungrige Astronauten
Indiegames-Rundschau
Epische ASCII-Abenteuer und erlebnishungrige Astronauten

In Stone Story RPG erwacht ASCII-Art zum Leben, die Astronauten in Oxygen Not Included erleben tragikomische Slapstick-Abenteuer, dazu kommen Aufbaustrategie plus Action und Sammelkartenspiele: Golem.de stellt neue Indiegames vor.
Von Rainer Sigl

  1. Indiegames-Rundschau Von Bananen und Astronauten
  2. Indiegames-Rundschau Verloren im Sonnensystem und im Mittelalter
  3. Indiegames-Rundschau Drogen, Schwerter, Roboter-Ritter

Smarte Wecker im Test: Unter den Blinden ist der Einäugige König
Smarte Wecker im Test
Unter den Blinden ist der Einäugige König

Einen guten smarten Wecker zu bauen, ist offenbar gar nicht so einfach. Bei Amazons Echo Show 5 und Lenovos Smart Clock fehlen uns viele Basisfunktionen. Dafür ist einer der beiden ein besonders preisgünstiges und leistungsfähiges smartes Display.
Ein Test von Ingo Pakalski

  1. Nest Hub im Test Google vermasselt es 1A

Google Maps: Karten brauchen Menschen statt Maschinen
Google Maps
Karten brauchen Menschen statt Maschinen

Wenn Karten nicht mehr von Menschen, sondern allein von Maschinen erstellt werden, erfinden diese U-Bahn-Linien, Hochhäuser im Nationalpark und unmögliche Routen. Ein kurze Liste zu den Grenzen der Automatisierung.
Von Sebastian Grüner

  1. Kartendienst Google bringt AR-Navigation und Reiseinformationen in Maps
  2. Maps Duckduckgo mit Kartendienst von Apple
  3. Google Maps zeigt Bikesharing in Berlin, Hamburg, Wien und Zürich

    •  /