APL y J

El profesor canadiense Ken Iverson, cuando trabajaba en la Universidad de Harvard, inventó una notación personal para describir procedimientos matemáticos (inicialmente, por tanto, no pretendía ser un lenguaje de programación). Esta notación, concisa y sin ambigüedad, fue descrita por el propio Iverson en 1962 en el libro A Programming Language, (de ahí las iniciales APL) y durante la década de los 60, IBM desarrolló el primer intérprete.

APL es sobre todo conocido por su concisión. Por ejemplo, la sentencia 10 ? 10 devuelve los números del 1 al 10 ordenados aleatoriamente. El siguiente «programa» de una sola línea (y diecisiete caracteres), copiado de la Wikipedia, (mira allí si no se ven bien los símbolos en tu navegador o quieres saber cómo funciona) genera la lista de todos los números primos entre 1 y R. Por ejemplo, si a R se le ha asignado previamente el valor 10, devuelve la lista 2, 3, 5, 7.


(∼R∈Ro.×R)/R←1↓ιR

Otro de los puntos fuertes de APL es su capacidad para manejar conjuntos de datos como un todo, evitando en muchos casos la necesidad de bucles. Normalmente se trata de un lenguaje interpretado que proporciona un entorno interactivo y flexible.

APL ha sido criticado, en cambio, por su falta de legibilidad, lo que hace difícil modificar programas antiguos (se le ha llamado, irónicamente, write-only language). Otro defecto importante deriva del uso de símbolos propios (letras griegas y otros caracteres aún menos convencionales), lo que, además de dificultar la escritura (al no aparecer en los teclados normales), hace que el código sea poco portable, ya que cada versión concreta de APL almacena a su modo el código fuente (y eso aparte de las habituales diferencias de una implementación a otra). El propio Iverson, junto con Roger Hui, ha creado un nuevo lenguaje (J), derivado de APL, que usa sólo caracteres ASCII.

Un sitio web dedicado a APL es ACM SIGAPL Home Page.

A+ parece ser una variante de APL orientada a los negocios, desarrollada por Arthur Whitney en la empresa Morgan Stanley. Se puede ejecutar en MacOS X, Linux y otras versiones de Unix.

APL\11, es un intérprete gratuito para Unix, escrito por Michael Cain. Sustituye los símbolos APL por caracteres ASCII, incluidas algunas letras mayúsculas. Tiene un manual, al parecer incompleto.

APLSE es un intérprete gratuito de Manugistics para MS-DOS. Incluye un tutorial interactivo.

FreeAPL es una versión de dominio público para Windows basada en APL\11. (Archivo Freeapl.zip, de 240 Kb.)

I-APL es un intérprete para MS-DOS y Atari-ST (también está disponible el código fuente). Contiene varias bibliotecas (workspaces, en la nomenclatura de APL) bien documentadas.

J es un nuevo dialecto de APL, también creado por Ken Iverson. Se puede descargar gratuitamente, aunque para usarlo como programador hace falta una clave de usuario (la envían gratuitamente por correo electrónico después de rellenar un pequeño formulario). Hay versiones para Windows, MacOS X, Linux y otros sistemas operativos. Se distribuye con una amplia documentación (también disponible en el sitio).

SHARP APL es un intérprete para Linux de Soliton Associates que se ofrece gratuitamente para uso personal. La documentación también está disponible.

APL2 es una versión comercial de IBM y TryAPL2 la correspondiente de prueba. La última versión de TryAPL2 sólo se puede usar por un tiempo limitado, pero todavía está disponible una versión antigua (y también limitada con respecto a la comercial de entonces) para MS-DOS.


Última revisión: 1 de agosto de 2004

Código XHTML 1.0 validado