2.8 Von-Neumann-Sprachen
123
2.8.2 Ada
In den achtziger Jahren des zwanzigsten Jahrhunderts bemerkte das US-amerikanische Verteidigungsministerium, dass sowohl die Verlässlichkeit als auch die Wartbarkeit der Software in den militärischen Ausrüstungsgegenständen zu großen Problemen werden könnten, wenn nicht strenge Regelungen eingeführt würden. Es wurde
entschieden, dass alle Software in der gleichen Echtzeitsprache geschrieben werden
sollte. Die Anforderungen an solch eine Sprache wurden formuliert. Da keine existierende Sprache alle Anforderungen erfüllte, wurde eine neue Sprache entworfen.
Die letztlich angenommene Sprache basiert auf PASCAL und heißt Ada (nach Ada
Lovelace, die als die erste Programmiererin gilt). Ada’95 [288, 80] ist eine objektorientierte Erweiterung des Original-Sprachstandards. Allerdings wurden inzwischen
die Vorgaben zur Nutzung von Ada wieder gelockert.
Ada hat die interessante Eigenschaft, dass man verschachtelte Prozesse (die in
Ada Tasks heißen) deklarieren kann. Eine Task wird gestartet, wenn der Kontrollfluss
in den Bereich verzweigt, in dem die Task deklariert wurde.
Beispiel 2.38: Das folgende Beispiel ist aus Burns et al. [79] entnommen. Darin
enthält die Prozedur examppe1 zwei lokale Tasks a und b.
procedure examppe1 is
task a;
task b;
task body a is
-- -okaae Dekkarationen für a
begin
-- Anweisungen für a
end a;
task body b is
-- -okaae Dekkarationen für b
begin
-- Anweisungen für b
end b;
begin
-- Rumpf der Prozedur examppe1
end;
Tasks a und b werden gestartet, wenn der Kontrollfluss in den Rumpf verzweigt,
d.h. sie werden vor der 1. Anweisung im Code von examppe1 starten.
∇
Das Kommunikationskonzept von Ada ist ein weiteres wichtiges Konzept. Es basiert ähnlich wie das Konzept bei CSP auf dem Rendez-Vous-Paradigma. Wenn zwei
Tasks Informationen austauschen wollen, muss diejenige Task, die den „Treffpunkt“
zuerst erreicht, warten, bis auch der Kommunikationspartner den entsprechenden
Punkt im Kontrollfluss erreicht hat. In der Ada-Syntax werden Prozeduren verwendet, um Kommunikation zu beschreiben. Prozeduren, die von anderen Tasks
aufgerufen werden können, müssen mit dem Schlüsselwort entry gekennzeichnet
werden.
123
2.8.2 Ada
In den achtziger Jahren des zwanzigsten Jahrhunderts bemerkte das US-amerikanische Verteidigungsministerium, dass sowohl die Verlässlichkeit als auch die Wartbarkeit der Software in den militärischen Ausrüstungsgegenständen zu großen Problemen werden könnten, wenn nicht strenge Regelungen eingeführt würden. Es wurde
entschieden, dass alle Software in der gleichen Echtzeitsprache geschrieben werden
sollte. Die Anforderungen an solch eine Sprache wurden formuliert. Da keine existierende Sprache alle Anforderungen erfüllte, wurde eine neue Sprache entworfen.
Die letztlich angenommene Sprache basiert auf PASCAL und heißt Ada (nach Ada
Lovelace, die als die erste Programmiererin gilt). Ada’95 [288, 80] ist eine objektorientierte Erweiterung des Original-Sprachstandards. Allerdings wurden inzwischen
die Vorgaben zur Nutzung von Ada wieder gelockert.
Ada hat die interessante Eigenschaft, dass man verschachtelte Prozesse (die in
Ada Tasks heißen) deklarieren kann. Eine Task wird gestartet, wenn der Kontrollfluss
in den Bereich verzweigt, in dem die Task deklariert wurde.
Beispiel 2.38: Das folgende Beispiel ist aus Burns et al. [79] entnommen. Darin
enthält die Prozedur examppe1 zwei lokale Tasks a und b.
procedure examppe1 is
task a;
task b;
task body a is
-- -okaae Dekkarationen für a
begin
-- Anweisungen für a
end a;
task body b is
-- -okaae Dekkarationen für b
begin
-- Anweisungen für b
end b;
begin
-- Rumpf der Prozedur examppe1
end;
Tasks a und b werden gestartet, wenn der Kontrollfluss in den Rumpf verzweigt,
d.h. sie werden vor der 1. Anweisung im Code von examppe1 starten.
∇
Das Kommunikationskonzept von Ada ist ein weiteres wichtiges Konzept. Es basiert ähnlich wie das Konzept bei CSP auf dem Rendez-Vous-Paradigma. Wenn zwei
Tasks Informationen austauschen wollen, muss diejenige Task, die den „Treffpunkt“
zuerst erreicht, warten, bis auch der Kommunikationspartner den entsprechenden
Punkt im Kontrollfluss erreicht hat. In der Ada-Syntax werden Prozeduren verwendet, um Kommunikation zu beschreiben. Prozeduren, die von anderen Tasks
aufgerufen werden können, müssen mit dem Schlüsselwort entry gekennzeichnet
werden.
