PEARL 90
- Home /
- PEARL 90
PEARL 90
Process and Experiment Automation Realtime Language
oderProgrammieren von Echtzeit Anwendungen Relativ Leicht
Warum PEARL
Das außerordentliche Anwachsen der Software-Kosten erzwingt den Übergang von der Assemblerprogrammierung zur strukturierten Programmierung in einer höheren Echtzeit-Programmiersprache. PEARL ist weltweit die einzige anwendungsorientierte höhere Echtzeit-Programmiersprache. Unabhängige Probleme können als eigenständige Prozesse (Tasks) programmiert und parallel exekutiert werden - eine wesentliche Erleichterung bei der Realisierung automatisierungstechnischer Probleme.
Ein modernes Konzept
Die Anfänge von PEARL liegen in den 70er Jahren. Ziel der vom BMFT geförderten Entwicklung war die Definition einer Sprache, die die wichtigsten Elemente der gängigen Hochsprachen mit einem klaren Realzeit- und Tasking-Konzept vereinigt. UH-PEARL ist eine Implementierung der Sprache auf Mikroprozessorsystemen, deren Entwicklung Anfang der 80er Jahre an der Universität Hannover unter Leitung von Prof. Dr.-Ing. W. Gerth begann.
Leicht erlernbar
PEARL ist eine leicht erlernbare Programmiersprache insbesondere zur Lösung echtzeitorientierter Probleme. Sie ist, anders als zum Beispiel Prozeß-FORTRAN, eine Sprache aus einem Guß, die direkt integrierte Sprachelemente für Prozeß-E/A und zeitliche Aufgabeneinplanung besitzt. Damit ist ein hohes Maß an Portabilität gegeben.
Universell einsetzbar
PEARL ist eine blockorientierte, strukturierte Sprache. Sie ist universell auch zur Lösung komplexer, algorithmischer Probleme geeignet. PEARL stellt Sprachelemente zur Interrupt-Behandlung und zur synchronisierten Kommunikation zwischen Tasks zur Verfügung.
Spracheigenschaften
Ein ausgearbeitetes Multitasking-Konzept, die Unterstützung aller gängigen algorithmischen Kontrollstrukturen sowie leicht anwendbare Echtzeit-Sprachelemente sind wesentliche Merkmale des UH-PEARL. Bei der Entwicklung der Sprache wurde besonderer Wert auf gute Selbstdokumentation und einfache, klare Formulierung des Echtzeit- und Multitasking-Verhaltens gelegt. Anders als z.B. Ada ist Pearl von anwendungsorientierten Entwicklern in kurzer Zeit erlern- und wirkungsvoll einsetzbar.
Modularität
Die Voraussetzung für sichere und effiziente Programmentwicklung und Wartung bei größeren Projekten schafft der modulare Aufbau von PEARL-Programmen.
Die Unterteilung eines Moduls in einen hardwareabhängigen SYSTEM-Teil, in dem die Verbindung zwischen den PEARL-Datenstationen und der Umwelt definiert wird, und dem hardwareunabhängigen PROBLEM-Teil erleichtert Portierungen von PEARL-Programmen in eine andere Hardwareumgebung.
Die Aufgliederung eines Moduls in hierarchische Blöcke mit Kapselung lokaler Daten bietet einen problemangepaßten Programmaufbau. Quasi-parallele Abarbeitung der Tasks und wiedereintrittsfeste wie auch rekursive Prozeduren ermöglichen die einfache Aufteilung eines Problems in unabhängige Prozesse.
Datentypen
Neben den auch in anderen Sprachen üblichen Grunddatentypen FIXED, FLOAT, CHAR stellt Pearl außerdem CLOCK (Uhrzeit), DURATION (Zeitdauer), SEMA (Synchronisationsvariable) und BIT (Bitkette) zur Verfügung. Neue Datentypen können durch problemspezifisches Zusammenfassen von Elementen verschiedener Grunddatentypen zu Verbunden (STRUCT) und durch eigene Typ-Vereinbarungen (TYPE) vereinbart werden. Zusammen mit Zeigervariablen (REF) erlaubt dies eine fein abgestufte Modularisierung der Programme.
Normung
PEARL ist seit 1981 in DIN 66 253 Teil 1 (Basic PEARL) und seit 1982 in DIN 66 253 Teil 2 (Full PEARL) genormt und hat sich bereits in über 200 Groß- und vielen hundert Kleinprojekten bewährt.
Echtzeit-Anweisungen
Die einfache zeitliche Organisation des Programmablaufes
AFTER 10 SEC ALL 4 SEC UNTIL 17:00:00 ACTIVATE Regler PRIO 6;
(Zyklische Durchführung der Task Regler bis zu einer festen Uhrzeit)
sowie die integrierte Interruptverarbeitung
WHEN Feuer ACTIVATE Loesch;
(Einplanung der Task Loesch auf den Interrupt Feuer)
erfolgen durch selbstdokumentierende Anweisungen.
Ein-Ausgabe-Anweisungen
Ein-/Ausgaben erfolgen über stets identische Pearl-Datenstationen. Rechnerspezifische Kontroll- und Konvertierungsfunktionen werden über Vereinbarungen nur im SYSTEM-Teil bestimmt. Insbesondere Prozeß-E/A
SEND Aus TO Motor ;
TAKE belegt FROM Lichtschranke ;
und dateiorientierte, alphanumerische E/A
PUT Temperatur TO Protokolldatei;
GET Sollhoehe FROM Bedienkonsole ;
können so leicht an unterschiedliche Gerätekonfigurationen angepaßt werden.
ROM-Code
Der PEARL-Compiler erzeugt optional ROM-fähigen Code und erlaubt so die Programmierung abgeschlossener Systeme ohne Massenspeicher. Beim Start des Systems werden nur die ggf. mit Initialwerten besetzten Variablen im RAM angelegt; der Programmcode wird aus dem ROM heraus exekutiert.
Verfügbarkeit
IEP unterstützt den Einsatz von UH-PEARL auf allen Rechnern unter dem
Betriebssystem RTOS-UH.
Zielprozessoren sind NXP MC68xxx und PowerPC. Zielsysteme gibt es in
allen Leistungsklassen, von der low-end 680xx-Reihe mit den 683xx-Controllern über das
komplette VMEbus-Spektrum bis zu Multiprozessor-PPC-Workstations.
Der UH-PEARL-Compiler kann auch als Cross-Compiler eingesetzt werden.
Compilerversionen für z.B. Windows oder UNIX etc. sind verfügbar; der erzeugte Code kann
auf jedem Rechner unter RTOS-UH ausgeführt werden.
Hier finden Sie weiterführende Informationen zu PEARL90, unter anderem eine kurze Einführung, eine weiterführende Literaturliste sowie eine FAQ.