Open Programming Language

Open Programming Language (OPL)
Paradigm imperative, structured, embedded
Designed by Psion Ltd
Developer opl-dev project
First appeared 1984
Stable release
1.56 / June 17, 2006 (2006-06-17) / June 17, 2006 (2006-06-17)
OS Symbian OS, Psion Organiser
Website opl-dev.sourceforge.net

Open Programming Language (OPL) is an embedded programming language for portable devices that run the Symbian Operating System.

Usage

It can be found on the Nokia 9200, 9300 and 9500 Communicator series mobile telephone/personal digital assistant (PDA) and the Sony Ericsson P800, P900, P910 series. On classic Psion PDAs such as the Series 3, 5/5mx, Series 7, and netBook/netPad, as well as the MC218, OPL is part of the standard application suite. OPL is also included in Psion Teklogix industrial handhelds such as the Workabout mx. OPL is an interpreted language similar to BASIC. A fully Visual Basic-compatible language OVAL has been also developed.

History

The language was originally called Organiser Programming Language, developed by Psion Ltd for the Psion Organiser. The first implementation (without graphics) was for the original Psion Organiser (now referred to as the Psion Organiser I, 1984), and it came bundled with the Science, Finance and Math data packs. It became truly accessible as built-in software in the Psion Organiser II (1986), and the language went on to be used in the Psion Series 3 and later. After Psion retired from the portable digital assistant market, the project was delayed until 2003, when the fledgling Symbian Developer Program released it as open source. The language is now developed on SourceForge in the opl-dev project.

The language is not available from Symbian OS v8 and later, mainly due to lack of interest and support from major Symbian licencees Nokia and Sony Ericsson. Hence, OPL will most likely never be made available for the newer generation of Symbian OS phones such as Sony Ericsson P990, M600, W950, P1i and Nokia E61i and E90. As of 2010, Nokia device developers are encouraged to use Python for S60 instead (See Python for S60).

Examples

Here is the console version of a Hello world program:

PROC main:
  PRINT "Hello World!"
  PAUSE 40
ENDP

(Source code taken from the PCDevPrimer in the OPL Wiki.)

And here is a GUI version for Nokia's Series 80 user interface:

CONST KKeyEnter%=13

PROC hello:
  dINIT "Hello"
  dTEXT "","Hello World!"
  dBUTTONS "OK",KKeyEnter%
  DIALOG
ENDP

OPL is a structured programming language. OPL programs contain PROCedures, which are much like functions in other programming languages.

Testing dialog responses

An example:

PROC test:
  dINIT "Your Challenge"
  dTEXT "","Will your answer to this question be no?"
  dBUTTONS "Yes",%y,"No",%n
  IF DIALOG=%y
     PRINT "No it wasn't!"
  ELSE
     PRINT "Yes it was!"
  ENDIF
  GET
ENDP

In this cruel interrogative program, the Yes button is assigned the shortcut of Ctrl+y, while No has Ctrl+n, represented by %y and %n respectively. The user's input from the DIALOG is tested in the IF statement, PRINTing appropriate responses to the screen. Note that the 'GET' keyword, which gets user input without using a dialog box, is here used simply to wait for a keypress before terminating the program (otherwise it would end immediately without giving time for the user to read the text). The output from DIALOG can also be stored in a variable.

Variables specific to a procedure must be declared with the LOCAL keyword; global variables are defined with the GLOBAL keyword.

Variable types

The table below uses an example variable called 'var'.

Data Type Syntax
Floating Point var
Integer var%
Long Integer var&
String var$(length)

Minutiae

OPL interfaced with advanced Psion Series 3 features by means of operating system CALLs, but in the later Psion Series 5mx this was changed to a so-called 'OPX' library, stored in the system ROM (the Z drive). 'OPX' libraries were also made available for the Nokia 9210, Nokia 9300 and Nokia 9500 Communicators, adding OPXs routines for handling SMS and managing Bluetooth communication.

Other OPL features include those with a letter 'g' at the beginning, for graphical functions; those with a letter 'm', for menus; and those with a letter 'd', for dialogs.

See also

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.