Die Geschichte der Echtzeitprogrammiersprache PEARL

Jüngere Entwicklungen im Kontext der Sicherheitsintegritätsstufen

Inhaltsverzeichnis

2012 begann ein Arbeitskreis des gemeinsamen Fachausschusses Echtzeitsysteme der Gesellschaft
für Informatik (GI), der VDI/VDE-Gesellschaft für Mess- und Automatisierungstechnik (GMA) sowie der Informationstechnischen Gesellschaft (ITG) im VDE, einen auf der PEARL90-Sprachnorm basierenden Übersetzer OpenPEARL zu entwickeln, der zusammen mit einem passenden Laufzeitsystem für Linux-Systeme frei erhältlich ist.

Im Zuge dieser Arbeiten wurde die Norm kritisch gesichtet, was zur Aufdeckung von Widersprüchen und nicht eindeutigen Formulierungen sowie in der Folge zu zahlreichen Präzisierungen und Vereinfachungen der Sprache führte, die dann in OpenPEARL Einzug hielten. Erfahrungsgemäß höchst selten eingesetzte oder technisch obsolet gewordene Konstrukte wurden ebenso aus ihr entfernt wie solche, die zu fehlerträchtigen, unstrukturierten, schwer analysierbaren und nicht modular aufgebauten Programmen mit
nichtdeterministischem Laufzeitverhalten führen und strenge Datentypisierung behindern.

Darauf aufbauend wurde unter dem Namen SafePEARL durch Zusammenfügung und Modifikation von OpenPEARL und Mehrrechner-PEARL eine auf Sicherheit ausgerichtete Grundsprache zur Echtzeitprogrammierung sowie darin für jede der vier Sicherheitsintegritätsstufen nach der internationalen Norm IEC 61508 eine wegen der Beschränkung auf das Notwendigste leicht verständliche und somit inhärent sichere Teilsprache definiert. Deren Syntax erzwingt die Einhaltung der jeweils geltenden Einschränkungen.

Die den beiden oberen Sicherheitsstufen SIL4 und SIL3 zugeordneten Teilsprachen für Ursache-/Wirkungstabellen beziehungsweise Funktions- und Ablaufpläne auf der Grundlage verifizierter Bibliotheken sind die weltweit einzigen, die hohen Sicherheitsanforderungen genügende Programme derzeit einfach und wirtschaftlich zu verifizieren gestatten.

Für die unteren Sicherheitsstufen wurden textuelle Teilsprachen definiert, und zwar für SIL2 eine formaler Programmverifikation zugängliche Sprache und für SIL1 eine statische Sprache mit sicheren Konstrukten zum Einsatz im asynchronen Mehrprozessbetrieb.

Weniger sichere Sprachmerkmale werden schrittweise zu höheren Sicherheitsstufen hin zur Programmformulierung nicht mehr zugelassen. Deshalb muss nicht für jede Stufe eine neue Sprache gelernt werden und Übersetzer können prüfen, ob Programme bestimmte Sicherheitsauflagen erfüllen. Das Prinzip, Teilmengen einer Sprache für kritische Anwendungen zu definieren, gestattet es, Programme nach bestimmten Sicherheitsanforderungen zu entwickeln und Codeabschnitte für sicherheitskritische und
-unkritische Systemteile miteinander zu verbinden. Je sicherheitskritischer ein System ist, desto restriktivere Methoden sind einzusetzen.

Zu ihrer Durchsetzung wird mit Übersetzerdirektiven das jeweils gewünschte Sicherheitsniveau vorgegeben, sodass sich alle notwendigen Prüfungen zur Übersetzungszeit durchführen lassen. In einem Codeabschnitt sind nur Konstrukte der Sprachteilmenge der bezeichneten und der höheren Sicherheitsniveaus zulässig. Codeabschnitte mit unterschiedlichen Sicherheitsanforderungen sind schachtelbar, um so transparent miteinander verbunden werden zu können.

Mit SafePEARL und seinen ineinander geschachtelten, spezifischen Teilmengen für die vier Sicherheitsintegritätsstufen nach IEC 61508 entstand eine Sprache zur Programmierung eingebetteter, verteilter Echtzeitsysteme, die die bekannten Sprachmittel zur Förderung funktionaler Sicherheit in sich vereinigt und sich an der menschlichen Verständnisfähigkeit orientiert. Leitmotiv ihrer Formulierung war das Streben nach größtmöglicher Korrektheit, Konsistenz und Genauigkeit der Darstellung bei geringstmöglichem Umfang. Deshalb wurden die vier den Sicherheitsintegritätsstufen zugeordneten Teilsprachen nicht einzeln beschrieben, sondern durch untenstehende Tabelle definiert. Sie gibt an, welche Konstrukte der Grundsprache auf den Sicherheitsstufen SIL1 bis SIL4 jeweils verwendet werden dürfen. Gemäß Beschluss des DIN-Normenausschusses "NA 043-01-22 AA Programmiersprachen" ersetzt SafePEARL seit 2018 die älteren Versionen nach DIN 66253 Teil 3 und DIN 66253-2.

Anweisung/Klausel SIL0 SIL1 SIL2 SIL3 SIL4
GOTO, EXIT + - - - -
(bedingte) Anweisungen und Ausdrücke + + + - -
bedingte Anweisungen und Anweisungsauswahl + + + - -
Angabe physikalischer Einheiten + + + + +
Ursache-Wirkungstabellen + + + + +
sequentielle Ablaufpläne + + + + -
Synchronisierung mit SEMA- und BOLT-Variablen + - - - -
Synchronisierung mit LOCK- und TIMEOUT-Klausel + + + - -
Verwendung interner Signale + + + - -
Verwendung von Unterbrechungssignalen + + + - -
Verwendung von Tasks + + + - -
mit Prioritäten + + - - -
mit Fristenangaben und Zeitüberwachung + + + - -
(Funktions-)Prozeduraufrufe + + + + -
Wiederholungen + + - - -
mit MAXLOOP-Klausel + + + - -
Verwendung von Zeigern und Referenzen + - - - -
PUT/GET, READ/WRITE, CONVERT + + + - -
TAKE/SEND + + + + +
verteilte Systeme + + + + +
dynamische Rekonfiguration + + + + -
Botschaftenaustausch + + + - -

Gepflegt wird PEARL durch den Fachausschuss Echtzeitsysteme, der unter anderem zweimal jährlich die Zeitschrift "EchtZeit – der Rundbrief" herausgibt und jährlich im November die Fachtagung Echtzeitsysteme durchführt. Deren Tagungsbände erscheinen im Springer-Verlag in der Reihe "Informatik aktuell". Für aktuelle Informationen zu PEARL und RTOS-UH sei auf den Internet-Auftritt des Fachausschusses verwiesen. Dort findet sich auch zur freien Verfügung ein PEARL-Sprachreport in englischer Sprache für den internationalen Markt und ein Verweis auf den frei verfügbaren OpenPEARL-Übersetzer.

Prof. Dr. Dr. Wolfgang A. Halang
hatte bis zu seiner Pensionierung den Lehrstuhl für Informationstechnik, insbesondere Realzeitsysteme, an der Fernuniversität in Hagen inne. Er beschäftigt sich mit dem Gebiet seit 1973 und ist Autor des 2018 in dritter Auflage im Springer-Verlag erschienenen Kompendiums "Sicherheitsgerichtete Echtzeitsysteme".

Dipl.-Inform. (Univ.) Marcel Schaible
beschäftigt sich seit 1984 mit Compilerbau und trug maßgeblich zur DIN-Norm für SafePEARL bei. Daneben arbeitet er als Freiberufler in der Industrie und als wissenschaftlicher Mitarbeiter an der Fernuniversität in Hagen.

(ane)