Open Programming Language ( OPL ) ist eine Programmiersprache für eingebettete Systeme und mobile Geräte , die die Betriebssysteme EPOC und Symbian ausführen . Sie wurde 1984 von der britischen Firma Psion veröffentlicht.

Verwenden

OPL wurde ursprünglich für die klassischen Psion -PDAs wie die Serien 3 , 5/5mx , 7 und netBook /netPad sowie den von Psion produzierten MC218 entwickelt und war Teil der Standard-Anwendungssuite. Es kann auch auf den Mobiltelefonen und PDAs der Nokia Communicator-Serien 9200, 9300 und 9500 sowie auf den Sony Ericsson- Serien P800 , P900 und P910 installiert werden . OPL ist außerdem in den industriellen Handhelds von Psion Teklogix wie dem Workabout mx enthalten und kam auch im weniger bekannten Oregon-Organizer „Osaris“ zum Einsatz, einem weitgehend kompatiblen EPOC32-Gerät, das als einziges die Version 4 des Betriebssystems nutzte. OPL ist eine interpretierte Sprache, ähnlich wie BASIC . Mit OVAL wurde zudem eine vollständig Visual Basic -kompatible Sprache entwickelt.

Geschichte

Die Programmiersprache hieß ursprünglich Organiser Programming Language (OPL ) und wurde von Psion Ltd. für den Psion Organiser entwickelt . Sie wurde von Colly Myers entworfen, die erste Version wurde von Richard Harrison und Martin Stamp implementiert. Die erste Implementierung (ohne Grafik) war für den ursprünglichen Psion Organiser (heute Psion Organiser I, 1984) bestimmt und wurde den Datenpaketen für Naturwissenschaften, Finanzen und Mathematik beigefügt. Mit dem Psion Organiser II (1986) wurde sie als integrierte Software verfügbar und kam auch in der Psion Series 3 und späteren Modellen zum Einsatz . Nachdem Psion sich vom Markt für PDAs zurückgezogen hatte , wurde ein Projekt zur Integration von OPL in Symbian realisiert, als das junge Symbian Developer Program die Sprache als Open-Source-Software veröffentlichte . OPL ist nun auf SourceForge im Projekt opl-dev verfügbar .

Die Sprache ist derzeit für Symbian OS v8 und höher nicht verfügbar. Da Symbian OS eingestellt wird, ist es unwahrscheinlich, dass OPL für spätere Generationen von Symbian-Geräten verfügbar sein wird. Seit 2010 werden Nokia-Geräteentwickler dazu angehalten, stattdessen Python für S60 zu verwenden (siehe Python für S60 ).

Beispiele

Hier ist die Konsolenversion eines „Hallo Welt!“-Programms :

PROC main: DRUCKEN "Hallo Welt!" PAUSE 40 ENDP 

(Quellcode aus dem PCDevPrimer im OPL Wiki.)

Und hier ist eine GUI-Version für die Benutzeroberfläche der Nokia Series 80:

CONST KKeyEnter%=13 PROC hallo: dINIT "Hallo" dTEXT "","Hallo Welt!" dBUTTONS "OK",KKeyEnter% DIALOG ENDP 

OPL ist eine strukturierte Programmiersprache . OPL-Programme enthalten Prozeduren, die Funktionen ( Unterprogrammen ) in anderen Programmiersprachen sehr ähnlich sind.

  • Das Schlüsselwort `dINIT` initialisiert in diesem Beispiel ein Dialogfeld (intuitiv beginnen alle Funktionen, die mit Dialogfeldern zusammenhängen, mit dem Buchstaben „d“; der Einfachheit halber wird dieser Buchstabe kleingeschrieben, die Sprache selbst unterscheidet jedoch nicht zwischen Groß- und Kleinschreibung). Das erste Argument des Dialogfelds ist eine optionale Zeichenkette, die als Titel des Dialogfelds in der Titelleiste angezeigt wird.
  • Die dTEXT-Funktion gibt Text aus und benötigt zwei obligatorische Argumente: eine linksbündige Eingabeaufforderung und eine Hauptzeichenkette.
  • Das Schlüsselwort dBUTTONS ermöglicht das Einfügen von Schaltflächen in das Dialogfeld – hier gibt es eine Schaltfläche mit dem Text „OK“. Das zweite Argument jeder Schaltfläche enthält sowohl die spezielle Notation der Tastenkombination für diese Schaltfläche als auch den Rückgabewert des Dialogfelds, in diesem Fall die „Enter“-Taste.
  • Schließlich ist das Schlüsselwort DIALOG erforderlich, damit das zuvor initialisierte Dialogfeld auf dem Bildschirm angezeigt wird.

Testen von Dialogantworten

Ein Beispiel:

PROC test: dINIT "Ihre Herausforderung" dTEXT "" , "Wird Ihre Antwort auf diese Frage Nein lauten?" dBUTTONS "Ja" , % y , "Nein" , % n IF DIALOG = % y PRINT "Nein, das war es nicht!" ELSE PRINT "Ja, das war es!" ENDIF GET ENDP

In diesem harschen Verhörprogramm ist die Schaltfläche „Ja“ mit Strg+y und die Schaltfläche „Nein“ mit Strg+n belegt (repräsentiert durch %y bzw. %n). Die Benutzereingabe aus dem Dialogfenster wird in der IF-Anweisung geprüft und die entsprechenden Antworten auf dem Bildschirm ausgegeben. Das Schlüsselwort „GET“, das Benutzereingaben ohne Dialogfenster erfasst, dient hier lediglich dazu, auf einen Tastendruck zu warten, bevor das Programm beendet wird (andernfalls würde es sofort beendet, ohne dem Benutzer Zeit zum Lesen des Textes zu geben). Die Ausgabe des Dialogfensters kann auch in einer Variablen gespeichert werden.

Prozedurspezifische Variablen müssen mit dem Schlüsselwort LOCAL deklariert werden; globale Variablen werden mit dem Schlüsselwort GLOBAL definiert.

Variablentypen

Die folgende Tabelle verwendet eine Beispielvariable namens var.

DatentypSyntax
Gleitkommazahlvar
Ganze Zahlvar%
Ganzzahlvar&
Zeichenkettevar$( Länge )

Kleinigkeiten

OPL griff über Betriebssystemaufrufe (CALLs) auf die erweiterten Funktionen der Psion-Serie 3 zu. In der späteren Psion-Serie 5mx wurde dies durch eine sogenannte OPXBibliothek ersetzt , die im Festwertspeicher (ROM), dem sogenannten Z-Laufwerk, gespeichert war. OPX-Bibliotheken wurden auch für die Nokia-Kommunikatoren 9210 , 9300 und 9500 bereitgestellt und enthielten OPX-Routinen für den SMS-Versand und die Bluetooth- Kommunikation.

Weitere OPL-Funktionen umfassen solche, die mit einem Buchstaben beginnen: gfür grafische Funktionen, mfür Menüs und dfür Dialoge.

Siehe auch

Referenzen