Dr. Johannes Kanig AdaCore

Die vielfältigen Features von Ada können bei der Entwicklung von Software für eingebettete Systeme und bei IoT-Anwendungen den Unterschied ausmachen.

Softwareentwicklung für eingebettete Systeme ist besonders anspruchsvoll. Mit Ada können Entwickler auf eine Programmiersprache zurückgreifen, die von Anfang an in Hinblick auf eingebettete und Echtzeitsysteme konzipiert wurde. Das strikte Typsystem, die objektorientierte Programmierung, Multitasking und die vertragsbasierte Programmierung vereinfachen die Entwicklung von Software für Embedded Systems.

Nicht zuletzt vor dem Hintergrund des enormen Aufschwungs des Internets der Dinge (IoT) gewinnen die eingebetteten Systeme – Embedded Systems – mehr und mehr an Bedeutung. Die dabei gestellten Anforderungen sind meist hoch: Einerseits sind die verfügbaren Ressourcen eingeschränkt und der Einsatz erfolgt häufig auch unter erschwerten Bedingungen, andererseits sind durchaus hochkritische Aufgaben zu bewältigen, beispielsweise in der Steuerung von Anlagen, Maschinen oder Fahrzeugen. Die Entwicklung von Software für eingebettete Systeme unterscheidet sich daher auch erheblich von der, die in anderen Bereichen der IT üblich ist, beispielsweise bei den Intel-PCs. So sind bei eingebetteten Systemen viele Funktionen stark von der jeweiligen Hardware abhängig, es sind speziell angepasste Betriebssysteme zu berücksichtigen, das Debugging stellt besondere Anforderungen und die beschränkten Ressourcen müssen auch in der Programmierung berücksichtigt werden.

In der Softwareentwicklung für eingebettete Systeme werden natürlich auch Programmiersprachen eingesetzt, die sich für diese Aufgabe bewährt haben. Dazu zählt neben C++ heute vor allem die Programmiersprache Ada, die Ende der 1970er-Jahre fast zeitgleich mit C++ entwickelt und erstmals 1983 standardisiert wurde. Im Unterschied zu anderen Programmiersprachen wurde Ada von Anfang an in Hinblick auf eingebettete und Echtzeitsysteme konzipiert. Die Sprache verfügt über zahlreiche Features, die gerade die Entwicklung dieser Systeme vereinfacht. Es lassen sich sowohl hardwarenahe, effiziente als auch problemnahe, elegante Lösungen erstellen. Für eine bessere Wiederverwendung von Code enthält Ada objektorientierte Programmierung sowie Unterstützung für Multitasking für mehr Struktur und Effizienz in nebenläufigen Anwendungen. Außerdem ermöglicht die vertragsbasierte Programmierung ein größeres Vertrauen in die Korrektheit des Programms. Hinsichtlich Effizienz steht Ada den Sprachen C und C++ in nichts nach.

Ein striktes Typsystem

Syntaktisch geht Ada andere Wege als C und C++, um die Lesbarkeit von Ada-Programmen zu erhöhen. Ada enthält ein striktes Typsystem und erzwingt eine strikte Trennung zwischen Typen: Das Typsystem wird dynamisch zur Laufzeit überprüft, wobei diese zusätzlichen Checks auch abgeschaltet werden können.

Während in anderen Programmiersprachen meist nur die vordefinierten Integer der Größen 8 Bit, 16 Bit, 32 Bit und 64 Bit sowie 32-Bit- und 64-Bit-Floating-Point-Typen verfügbar sind, können in Ada Integer- oder Floating-Point-Typen mit einem beliebigen Intervall – also zum Beispiel von 10 bis 20 – definiert werden. Echte Array-Typen und nicht nur Syntax für Zeiger gibt es ebenfalls, außerdem Typen wie Strukturen oder Aufzählungen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 4.17 - "Full-Stack Swift"

Alle Infos zum Heft
579801944Ada – eine Programmiersprache für Embedded Systems
X
- Gib Deinen Standort ein -
- or -