Ada
Christoph Karl Walter Grein
 überarbeitet    Juli 2021 July    revised
überarbeitet    Dezember 2021 December    revised
  komplett überarbeitet    August 2022 August    completely revised
      Korrekturen, Ergänzungen   August 2023 August   corrections, improvements
     Korrekturen, Ergänzungen   November 2024 November   corrections, improvements

Öffentlicher Ada-Grundkurs Public Ada Basics Course Modern Lady Ada
Image created by
Christine Anderson
Diese Folien sind das Ergebnis vieler Ada-Grundkurse, die ich über die Jahre gehalten habe. These slides are the result of many Ada basics courses I held over the years.
Dieser Kurs verschafft einen umfassenden Einstieg in die Programmiersprache Ada. Voraussetzung ist Kenntnis einer höheren Programmiersprache. Der Kurs beschäftigt sich hauptsächlich mit Ada 95 (mit Angabe der Unterschiede zu Ada 83), da diese zweite Sprachgeneration schon alle wesentlichen Grundlagen umfasst. Wo spätere Generation wichtige Erweiterungen der Grundlagen hinzugefügt haben, werden auch diese behandelt (bis einschließlich Ada 2022, des neuesten Standards herausgegeben von ISO am 2. Mai 2023). This course provides an extensive introduction into the programming language Ada. Prerequisite is knowledge of a higher programming language. This course is mainly Ada 95 (with indication of differences to Ada 83) since this language generation already holds all necessary basic concepts. When later generations have added essential enhancements to these basics, they are also covered (including Ada 2022, the newest standard released by ISO on 2nd May 2023).
Nicht enthalten sind etikettierte Typen (tagged types) (Typerweiterung und OOP) noch nebenläufige Prozesse (tasking). Not included are tagged types (type extension and OOP) nor tasking.
Ursprünglich war das ein einwöchiger Kurs, aber da die Zeitbeschränkung im Selbststudium wegfällt, sind einige Folien dazugekommen. Leider fehlen die zugehörigen sonst mündlich vorgetragenen Erläuterungen. Ich hoffe jedoch, dass die meisten Folien auch so aussagekräftig genug sind. Originally, it was a one-week course, but the slides have been augmented since there is no longer a time constraint when studying at home. Alas, the accompanying talk is, of course, not included. I however do hope the slides are enough meaningful by themselves.
Bevor Sie jetzt in die Tiefen Adas in fünf Generationen eintauchen (Ada 83, 95, 2005, 2012, 2022), ein kleines Rätsel.
Bei Amazon gab es ein Buch “ADA: The Ultimate Beginner's Guide to Learn ADA Programming Step by Step” (ISBN 9798561828683) von einer gewissen Emma William zu kaufen (inzwischen nicht mehr erhältlich). Dieses Buch stellte sich als etwas heraus, das ein wenig aussieht wie Englisch, das aber offensichtlich durch automatische Übersetzung aus dem Deutschen erzeugt wurde – etwas komplett Unlesbares. Leider habe ich es versäumt, einen Screenshot zu schießen, das hätte einen netten Lacher abgegeben. Das Original ist „Diana Schmidt – Erfolgreich Progammieren mit Ada“ (ISBN 978-3-642-57935-6).
 
In diesem Preudo-Buch gibt es eine Übersetzung “wait for cash”. Nun ist das zugegebenermaßen eine der wichtigsten Tätigkeiten eines jeden Softwareingenieurs. Allerdings ist damit eine der wichtigsten Eigenschaften Adas gemeint.
Wer errät diese Eigenschaft, das deutsche Wort im Original?
Tip: Das Wort erscheint ganz am Anfang der Folie 8 des Kurses.
 

Inhalt des Kurses Course Contents
  • Typkonzept an Hand ganzer Zahlen
    Strenge Typbindung
    Subtypen
    Benannte Zahlen
  • Zusammengesetzte Typen
    Reihungen und Verbunde
    Aggregate
  • Ausdrücke
  • Kontrollstrukturen
    Schleifen, bedingte Anweisungen, etc.
  • Unterprogramme
    Prozeduren und Funktionen
    Trennung von Spezifikation und Implementierung
    Parameterübergabe
    Rekursion
  • Aufzählungen
    Literale sind Funktionen
    Überladung
  • Pakete
    Kontraktmodell
    Strikte Trennung von Spezifikation und Implementierung
    Kontext-Klauseln und Sichtbarkeit
    Paket-Hierarchien
  • Ein-/Ausgabe
  • Vererbungslehre Ada 83
    Überschreiben ererbter Operationen
  • Schablonen
    Generische Parametertypen
    Generische Hierarchien
  • Ausnahmen
  • Ausarbeitung (Elaboration)
    Elaborationskontrolle
  • Zeiger
    Zeigervermeidung durch Ada.Containers
    Zeiger und Adressen
    Speicherfreigabe
    Storage Pools
  • Repräsentationsklauseln
    Little Endian vs. Big Endian
  • Kontrakte (Ada 2012)
  • Annexe
  • Zum Abschluss:
    Vertiefende Betrachtung des Zahlenmodells
    Big Numbers (Ada 2022)
    Fallen mit Unchecked_Conversion
    Abstrakte Operationen und ihr Wiederauftauchen
  • Type concept exemplified with whole numbers
    Strong Typing
    Subtypes
    Named Numbers
  • Composite Types
    Arrays and Records
    Aggregates
  • Expressions
  • Control Structures
    Loops, Conditional Statements, etc.
  • Subprograms
    Procedures and Functions
    Separation of Specification and Implementation
    Parameter Transfer
    Recursion
  • Enumerations
    Literals are Functions
    Overloading
  • Packages
    Contract Model
    Strict separation of Specification and Implementation
    Use Clauses and Visibility
    Package hierarchies
  • Input/Output
  • Ada 83 Inheritance Rules
    Overriding Inherited Operations
  • Generics
    Generic Parameter Types
    Generic Hierarchies
  • Exceptions
  • Elaboration
    Elaboration Control
  • Access Types
    Avoidance of Access Types via Ada.Containers
    Access Types and Addresses
    Memory Deallocation
    Storage Pools
  • Representation Clauses
    Little Endian vs. Big Endian
  • Contracts (Ada 2012)
  • Annexes
  • As a conclusion:
    In-depth treatment of Ada's Numeric Model
    Big Numbers (Ada 2022)
    Pitfalls with Unchecked_Conversion
    Abstract Operations and their Re-emergence
Runterladen Download
Hier sind die Folien, weitere Dokumente, Kodefragmente und Musterlösungen der Aufgaben. Find here the slides, additional documents, code fragments and sample solutions of the exercises.
Deutsch English
Der Autor würde sich über Kommentare zu diesem Kurs freuen.
 
The author would be happy about comments to this course.
 

Überarbeitung Dezember 2021 Revision December 2021
Ada 202X ist nun Ada 2022
Ada2022-Regeländerung für Diskriminanten und GtkAda-Beispiel hinzugefügt. Einige weitere kleine Verbesserungen.
 
Ada 202X is now Ada 2022
Ada2022 rule change for discriminants added. A few small improvements.
 
Überarbeitung August 2022 Revision August 2022
Der Kurs ist neu strukturiert und verbessert worden.
Ada_GUI-Beispiel hinzugefügt.
Neue Aufgaben für Zahlen zur Basis 3.
 
The course has been restructured and improved.
Ada_GUI example added.
New exercises for numbers in base 3.
 
August 2023 August 2023
Korrekturen und Erweiterungen.
 
Corrections and improvements.
 
November 2024 November 2024
Korrekturen und Erweiterungen.
 
Corrections and improvements.
 
© CKW Grein 2020, 2021, 2022, 2023, 2024
Schreib mir
christ-usch.grein@t-online.de

Valid HTML 4.01 Transitional