Die Geschichte der Echtzeitprogrammiersprache PEARL

Die einzige deutsche genormte Echtzeitprogrammiersprache PEARL gibt es nun seit rund 50 Jahren. Genau der richtige Zeitpunkt, sie anhand ihrer Entwicklung über die Jahre hinweg wieder in Erinnerung zu rufen.

Sprachen  –  50 Kommentare

Die Entwicklung der deutschen Echtzeitprogrammiersprache PEARL (Process and Experiment Automation Realtime Language) geht auf den Wunsch zurück, automatisierungs- und kerntechnische Anwendungen angemessen und mit hoher Produktivität formulieren zu können. Schon um das Jahr 1967 herum nahmen deshalb Ingenieure und Physiker von Firmen und Forschungsstellen die Arbeit an der Sprachspezifikation auf, die im April 1973 dann als erster Forschungsbericht des vom Bund geförderten Programms Prozeßdatenverarbeitung (PDV) veröffentlicht wurde.

Unmittelbar danach wurden erste Übersetzer gebaut und getestet. Ebenfalls begann die Normung von PEARL, wozu 1974 der Arbeitskreis DIN/FNI AK 5.8 gegründet wurde. Aus seinen Arbeiten gingen eine einfache und eine recht komplexe Version der Sprache hervor, die in den Teilen 1 und 2 der DIN 66253 als Basic PEARL 1981 und als Full PEARL 1982 genormt wurden. Daran schloss sich 1989 der Teil 3 Mehrrechner-PEARL an – eine Sprache mit konzeptioneller Klarheit und Eleganz, die ein von anderen bisher unerreichtes Muster zur Strukturierung und Programmierung verteilter Systeme darstellt. So gibt es beispielsweise keine andere Sprache, die dynamische Rekonfiguration verteilter Systeme im Fehlerfalle explizit unterstützt.

Abgrenzung zu anderen Programmiersprachen

Von anderen höheren Programmiersprachen unterscheidet sich PEARL besonders durch die explizite Unterstützung des Zeitbegriffs. Die beiden Datentypen CLOCK für Zeitpunkte und DURATION für Zeitdauern stehen zusammen mit entsprechenden arithmetischen Operationen zur Verfügung.

Während beispielsweise die Programmiersprache Ada als einzigen Zeitbezug nur die inhärent ungenaue Verzögerung des Ablaufs von Tasks kennt, die diese innerhalb ihrer Rümpfe selbst verwalten müssen, werden die Aktivierungen von PEARL-Tasks im Hauptprogramm problemorientiert eingeplant: einerseits als sporadische Reaktionen auf ankommende Unterbrechungssignale, auf Erreichen absoluter Zeitpunkte oder auf Verstreichen von Wartezeiten beziehungsweise andererseits periodisch mit in verschiedenen Formen anzugebenden Frequenzen und Geltungsdauern. Um in PEARL die periodische Aktivierung einer Task einzuplanen, reicht eine auch für Nichtfachleute verständliche und selbstdokumentierende Anweisung wie:

AT 12:00:00 ALL 1 SEC UNTIL 12:00:10 ACTIVATE Task1 PRIORITY 5;

aus. Genau wegen der Nähe von PEARL-Code zu Klartext eignet sich die Sprache nicht nur zur eigentlichen Programmierung, sondern auch zur Spezifikation von Automatisierungsanwendungen und insbesondere für die Lehre. In PEARL-Darstellung lassen sich Denkweise und Konzepte der Echtzeitprogrammierung einfach vermitteln und verstehen. Das hat positive Konsequenzen auf Qualität und Sicherheit der später von den Absolventen erstellten Systeme.

Mit PEARL hatte die deutsche Informationstechnik in den 1970er-Jahren auf dem Gebiet der Echtzeitsysteme eine international führende Stellung erreicht. Denn die Sprache ist ihren Konkurrenten wegen der Klarheit und geringen Komplexität ihrer Konstrukte sowie ihrer die funktionale Sicherheit fördernden leichten Lesbarkeit und Verständlichkeit technisch überlegen. Deshalb standen ihre Konzepte auch bei der Standardisierung einer Unterprogrammbibliothek zur Erweiterung von Fortran um Echtzeitfähigkeit zu Industrial Real-Time Fortran durch den International Purdue Workshop on Industrial Computer Systems Pate. Allein das französische LTR reichte an PEARL heran, ist jedoch leider verschwunden.

Auf dem Weltmarkt ist als einzige mit PEARL konkurrierende Sprache Ada verblieben, die komplex ist und deren Echtzeitfähigkeiten nur schwach ausgeprägt sind. Alle anderen Echtzeitsprachen werden nicht mehr gepflegt, meistens sogar seit mehreren Jahrzehnten nicht mehr. Und die sonst in diesem Bereich verwendeten Sprachen wie C und ihre Derivate besitzen keine originären Echtzeitkonstrukte, weshalb zur Programmierung viele explizite Betriebssystemaufrufe erforderlich sind.

Dass viele andere Sprachen heute bekannter sind, liegt nach Ansicht der Autoren außerdem darin begründet, dass sich die Sprachschöpfer zu wenig für ihr Produkt stark gemacht haben und etwa Ada in militärischen Projekten vorgeschrieben ist. Auch dass Projektmanager oft Vorgaben aufgrund nichttechnischer Kriterien machen, mag ein Grund sein.

Die im Laufe von 30 Jahren gemachten Erfahrungen fanden 1998 in der Norm DIN 66253-2 PEARL90 ihren Niederschlag, die die Teile 1 und 2 der DIN 66253 ablöste.

Geprüfter und nachgewiesener fehlerfreier Echtzeitbetrieb

Für den Einsatz in eingebetteten Systemen mit hohen Verlässlichkeitsanforderungen besonders hervorzuheben ist das konzeptionell auf unmittelbare Unterstützung der Echtzeitkonstrukte von PEARL zugeschnittene Realzeitbetriebssystem RTOS-UH des Instituts für Regelungstechnik der Leibniz-Universität Hannover, für das der Status der Betriebsbewährtheit durch Nachweis von über neun Millionen Stunden fehlerfreien Betriebs 18 exemplarischer Anwendungen erlangt werden konnte.

Die Gesamtzahl industrieller Einsatzfälle unterschiedlicher Couleur von PEARL dürfte im oberen fünfstelligen Bereich liegen. Vorwiegend eingesetzt werden PEARL und auch RTOS-UH von auf Automatisierungstechnik spezialisierten mittelständischen Firmen und Ingenieurbüros, die mit den Werkzeugen der Sprache ihren Wettbewerbs- und Produktivitätsvorsprung realisieren wollen. Um auch das für die Automatisierungstechnik so wichtige Gebiet der speicherprogrammierbaren Steuerungen abzudecken, wurde mit PEARL-PLC eine Abbildung der Funktionsplansprache gemäß der Norm IEC 61131-3 nach PEARL realisiert.