[ADA]-Eine theoretische Frage zur Echtzeit

Hallo!
Zuerst moechte ich sagen das ich von ADA keine Ahnung habe und meine sonstigen „Programmierkenntnisse“ eher klaeglich sind.
Ich habe jetzt aber gelesen, ADA sei besonders gut fuer Echtzeitaufgaben geeignet.
Ich wuerde mich sehr freuen, wenn mir das jemand so erklaeren koennte, das es auch fuer Laien verstaendlich ist!
Vielen Dank fuer die Muehe im Voraus.
Tschuess

Lothar

Hallo Lothar

Zuerst moechte ich sagen das ich von ADA keine Ahnung habe und
meine sonstigen „Programmierkenntnisse“ eher klaeglich sind.
Ich habe jetzt aber gelesen, ADA sei besonders gut fuer
Echtzeitaufgaben geeignet.
Ich wuerde mich sehr freuen, wenn mir das jemand so erklaeren
koennte, das es auch fuer Laien verstaendlich ist!

Bis Heute bin ich mir nicht sicher ob ADA überhaupt für etwas zu gebrauchen ist.
ADA war der Versuch des US-Verteidungsministeriums eine Programmiersprache für ALLES zu definieren, sie sollte genau so gut geeignet sein die Firmware für eine Kaffemaschine, mit einem 4-Bit Prozessor, zu schreiben als auch eine Atombombensimulation auf einem Supercomputer. Theoretisch müsste dann auch noch das Kaffemaschinen-Programm, ohne Änderungen, auch auf dem Supercomputer funktionieren …
Wie das halt so in der Politik ist, hat man dann ein Gremium geschaffen, wo jeder seine Wünsche einbringen konnte.
Dabei sind einige Funktionen, unter anderem solche welche für Echtzeit-Probleme benötigt werden, in die Sprache aufgenommen worden, obwohl dass eigentlich normalerweise Funktionen sind welche vom Betriebssystem zur Verfügung gestellt werden.
Das grösste Problem an ADA ist, dass, da man sich im Gremium nicht auf eine Funktion einigen konnte, viele grundlegende Mechanismen 2- oder 3-fach vorhanden sind, wobei sich diese nicht alle untereinander „vertragen“.

MfG Peter(TOO)

Hallo,

so weit ich weiss, wird ADA und auch FORTRAN immer noch viel eingesetzt. ADA zum Beispiel in der Avionik von Kampfflugzeugen und FORTRAN auch in Cores der Klimaforschung, da der kompilierte Code schneller ist als bei C und selbstverstaendlich erst recht bei C++. Mittlerweile sind C-Compiler aber wesentlich besser geworden und langsam wird alles umgeschrieben.

Wenn Du Dir ADA-Code anschaust, dann glaubst Du, Du hast es mit Turbo Pascal zu tun, so sehr aehneln sich die Quelltexte, mit Ausnahme mal der Echtzeitroutinen. ADA ist verdammt schnell, denn die Rechner im Tornado sind wohl die langsamsten, die man kennt. Man bedenke immerhin, das so ein Jet in 1 Sekunde gut 300 Meter oder mehr zuruecklegt und saemtliche Avionik-Routinen mussen dann neu berechnet werden und das auf einem Prozessor der im kHz-Bereich getacktet ist.

CU

Echtzeit = vorgeschriebene Response Time
Hi.

Zuerst moechte ich sagen das ich von ADA keine Ahnung habe und
meine sonstigen „Programmierkenntnisse“ eher klaeglich sind.

Die Beschreibungen der beiden vor mir erklären alles über ADA. ADA wird recht gerne auf Universitäten als Lernsprache benutzt, da es sehr hacklig ist, was Datentypen angeht und fast alles kann. Die Syntax schaut fast aus wie Pascal. Nach einigem Arbeiten mit Ada95 habe ich diese Sprache fast liebgewonnen (Sie hat so viele schöne features).

Ich habe jetzt aber gelesen, ADA sei besonders gut fuer
Echtzeitaufgaben geeignet.
Ich wuerde mich sehr freuen, wenn mir das jemand so erklaeren
koennte, das es auch fuer Laien verstaendlich ist!
Vielen Dank fuer die Muehe im Voraus.

Echtzeit bedeutet, das ein Programm innerhalb eines festgesetzten Zeitraums auf Inputs von ausserhalb reagiert. Das ganze wird normalerweise mit gleichzeitig laufenden Threads gelößt. Der Programmierer muß dabei darauf schauen, daß die nebeneinander laufenden Threads (Programmteile) nicht gleichzeitig versuchen, auf Komponenten zuzugreifen, die nicht parallel arbeiten. Die Reaktionszeit steht normalerweise in dem Pflichtenheft und muß auch im „worst case“ unter voller Auslastung noch erreicht werden

(z.B. Kampfeinsatz eines Jets im Winter: Autopilotsoftware bei Turbulenzen im Tieflug 100 Meter über dem Boden, Mach 1, multiple Feindkontakte, Abwehrmaßnahmen gegen Anfliegende Raketen in Arbeit, Maschine villeicht schon getroffen… usw, usw. Wenn der Rechner da erst nach einer Sekunde auf eintreffende Daten des Radars reagiert, pickt der Jet in einem Berg… Das ist gute Echtzeit-Programmierung :wink:
Ich habe nur das Beispiel aufgegriffen… bin normalerweise nicht so kriegerisch :wink:. Echtzeit ist ein dehnbarer Begriff. Je nach verlangter Responsetime. Ich kann mir auch ein Programm vorstellen, welches vorgeschriebenerweise innerhalb eines halben Tages auf einen Event reagieren muß… Das ist auch Echtzeit… In einem anderen Zeitkontext :wink:

Echtzeit können aber auch andere Programmiersprachen sehr gut, ich würde mal bei C bzw. C++ vorbeischauen, wenn es um hardwarenahe Programmierung und Geschwindigkeit geht.

Natürlich decken auch andere Programmiersprachen dieses Marktsegment ab… Schau in den Beschreibungen unter Wörtern wie

Thread(s)
Multithreading
Response Time
Realtime

nach. Wirst sehen, andere Sprachen haben das auch drauf :wink:

Mir sind selber nicht allzu viele Firmen bekannt, die ADA benutzen. Die wenigen, die ich allerdings kenne, sind ziemlich groß (ESA: Ariane Programmierung, Österreichische Energieproduzenten, usw)

mfG,

J.P.Jarolim