Ada
Christoph Karl Walter Grein
 überarbeitet    Juli 2021 July    revised
überarbeitet    Dezember 2021 December    revised

Öffentlicher Ada-Grundkurs Public Ada Basics Course Modern Lady Ada
Image created by
Christine Anderson
Dies 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 2012 TC 1). Einige wenige Referenzen zur vor der Tür stehenden Generation 2022 sind ebenfalls enthalten, wo die Neuerungen in einen Grundkurs passen. 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 2012 TC 1). A few references to the next generation 2022, which is so to say just on the door step, are also included when the amendments fit into a basic course.
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. Für einige Folien, die nicht genügend Information enthalten, sind die zugehörigen sonst mündlich vorgetragenen Erläuterungen in einem begleitenden Word-Dokument enthalten. Ich hoffe jedoch, dass die 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. (The German version has a separate Word document holding essentials of the missing talk.)
Bevor Sie jetzt in die Tiefen Adas in fünf Generationen eintauchen, 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, jedoch noch zu finden). Dieses Buch stellte sich als etwas heraus, das ein wenig aussieht wie Englisch, das aber offensichtlich durch automatische Über-setzung aus dem Deutschen erzeugt wurde – etwas komplett Unlesbares. Das Original ist „Diana Schmidt – Erfolgreich Progammieren mit Ada“ (ISBN 978-3-642-57935-6).
 
In diesem Buch gibt es eine Übersetzung “wait for cash”. Nun ist das zugegebener-maßen eine der wichtigsten Tätigkeiten eines jeden Softwareingenieurs. Allerdings ist damit eine der wichtigsten Eigenschaften Adas gemeint.
Wer errät diese Eigenschaft, das Original?
Tip: Das Wort erscheint auf der Umschlag-rückseite in korrekter Übersetzung.
 

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 Revision December
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.
 
© CKW Grein 2020, 2021
Schreib mir
christ-usch.grein@t-online.de

Valid HTML 4.01 Transitional