Lenguaje de Programación Abierto - Enciclopedia

Idioma de Programación Abierto (OPL) es un lenguaje de programación para sistemas embebidos y dispositivos móviles que ejecutan los sistemas operativos EPOC y Symbian. Fue lanzado por la empresa británica Psion en 1984.

Uso
Originalmente diseñado para su uso en sus clásicos dispositivos PDA de Psion, como la Serie 3, 5/5mx, Serie 7 y netBook–netPad, y el MC218 producido por Psion, OPL se proporcionó como parte de la suite de aplicaciones estándar. También puede ser instalado en los teléfonos móviles y asistentes digitales (PDA) de la serie Nokia 9200, 9300 y 9500 Communicator y en la serie Sony Ericsson P800, P900, P910. OPL también se incluye en los dispositivos industriales de mano de Psion Teklogix, como el Workabout mx, y también apareció en el organizador poco conocido Oregon 'Osaris', un dispositivo compatible con EPOC32 que usaba únicamente la versión 4 del sistema operativo. OPL es un lenguaje interpretado similar a BASIC. También se ha desarrollado un lenguaje completamente compatible con Visual Basic llamado OVAL.

Historia
El lenguaje originalmente se llamó Lenguaje de Programación para Organizador, desarrollado por Psion Ltd para el Psion Organiser. Diseñado por Colly Myers y implementado por Richard Harrison y Martin Stamp. La primera implementación (sin gráficos) fue para el original Psion Organiser (ahora conocido como Psion Organiser I, 1984), y venía con los paquetes de datos de Ciencia, Finanzas y Matemáticas. Se volvió verdaderamente accesible como software integrado en el Psion Organiser II (1986), y el lenguaje siguió siendo utilizado en la serie Psion Series 3 y posteriores. Después de que Psion se retiró del mercado de los asistentes digitales personales, un proyecto destinado a llevar OPL a Symbian se llevó a cabo, cuando el emergente programa de desarrolladores Symbian liberó el lenguaje como software de código abierto. Ahora, el lenguaje está disponible en SourceForge en un proyecto llamado opl-dev.

El lenguaje actualmente no está disponible para Symbian OS v8 y posteriores. Con la posterior retirada del Symbian OS, parece poco probable que OPL sea disponible para futuras generaciones de dispositivos Symbian. A partir de 2010, los desarrolladores de dispositivos Nokia se alentaron a usar Python para S60 en su lugar (ver Python para S60).

Ejemplos
Aquí está la versión de consola de un programa "Hola, Mundo!":

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

(Source code taken from the PCDevPrimer in the OPL Wiki.)
Y aquí está una versión con interfaz gráfica para la interfaz de usuario Series 80 de Nokia:

```
CONST KKeyEnter%=13

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

OPL es un lenguaje de programación estructurada. Los programas de OPL contienen PROCeduras, que son muy similares a las funciones (subrutinas) en otros lenguajes de programación.

La palabra clave dINIT en este ejemplo inicializa una caja de diálogo (suficientemente intuitivamente, todas las funciones relacionadas con cajas de diálogo comienzan con la letra 'd'; para mayor claridad, esta letra está en minúsculas, pero el lenguaje es insensible a mayúsculas y minúsculas). El primer argumento del diálogo es una cadena opcional, que se utiliza como título del diálogo, mostrado en la barra de título.
La función dTEXT muestra texto, con dos argumentos obligatorios: una cadena de prompt alineada a la izquierda y una cadena principal.
La palabra clave dBUTTONS permite agregar botones a la caja de diálogo; aquí hay un botón con el texto "OK". El segundo argumento de cada botón es tanto la notación especial de la tecla de acceso rápido para ese botón como el código de retorno del diálogo, en este caso la tecla "Enter".
Finalmente, la palabra clave DIALOG es necesaria para que la caja de diálogo inicializada se muestre en la pantalla.

= Pruebas de respuestas del diálogo =
Ejemplo:

En este cruel programa de interrogatorio, el botón de "Sí" tiene asignado el atajo Ctrl+y, mientras que "No" tiene Ctrl+n, representado por %y y %n respectivamente. La entrada del usuario desde el DIALOG se prueba en la instrucción IF, imprimiendo respuestas adecuadas en la pantalla. Note que la palabra clave 'GET', que obtiene entrada del usuario sin usar una caja de diálogo, se utiliza aquí simplemente para esperar una pulsación de tecla antes de finalizar el programa (de lo contrario, terminaría inmediatamente sin dar tiempo al usuario para leer el texto). La salida del DIALOG también se puede almacenar en una variable.
Las variables específicas de un procedimiento deben declararse con la palabra clave LOCAL; las variables globales se definen con la palabra clave GLOBAL.

= Tipos de variables =
La tabla a continuación utiliza un ejemplo de variable llamado var.

Detalles =
OPL se interfaz con características avanzadas de la serie Psion 3 mediante llamadas del sistema operativo, pero en la serie Psion 5mx esto se cambió a una llamada a una biblioteca llamada OPX, almacenada en la memoria de solo lectura (ROM) del sistema, conocida como la Z drive. Las bibliotecas 'OPX' también se hicieron disponibles para los comunicadores Nokia 9210, Nokia 9300 y Nokia 9500, añadiendo rutinas OPX para manejar el Servicio de Mensaje Corto (SMS) y gestionar la comunicación Bluetooth.
Otras características de OPL incluyen aquellas que comienzan con una letra: g para funciones gráficas, m para menús y d para diálogos.

Véase también
Psion Organiser
Symbian

Referencias

Enlaces externos
Proyecto opl-dev
Wiki de OPL en Internet Archive que contiene documentos que detallan palabras clave de OPL, interfaces OPX y mucha otra información
Blog de OPL por Symbian, ahora inactivo, pero las versiones antiguas están disponibles en el Internet Archive
Sitio web ruso sobre OPL [Archivado el 6 de diciembre de 2006 en el Wayback Machine]
Tutorial de programación OPL