APL

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

APL (A Programing Language, también conocido como Array Processing Language desde hace algunos años), es un lenguaje de programación interpretado, desarrollado por Kenneth Iverson, de IBM, a partir de los años 60. España cuenta con dos grandes desarrolladores del APL: María Luisa Tavera y Manuel Alfonseca Moreno (del Centro de Investigación UAM-IBM), a los que debemos múltiples trabajos y publicaciones de desarrollos y aplicaciones del APL.

Características[editar]

El APL es un lenguaje muy conciso, con una sintaxis muy sencilla, basada en unos (pocos) "operadores", que se representan por "símbolos" (cuya apariencia es semejante a los utilizados en lógica matemática), en lugar de con palabras en inglés (a diferencia de la mayoria de los otros lenguajes). Al no utilizar palabras ("clave"), sino símbolos sencillos, permite que sea igualmente comprensible para un americano, para un japonés o para un ruso.

Entre otras ventajas, facilita enórmemente los trabajos con tablas - matrices, y puede hacer todo tipo de operaciones lógicas o matemáticas. Incluso permite crear nuevas operaciones definidas por el usuario.

Es de una potencia tremenda. Una sola sentencia puede traducirse en miles de ellas en otros lenguajes, como Fortran, Basic, PL1, C, etc. Como ejemplo, el lenguaje de simulación de circuitos, SIAL, ocupaba cerca de 25 000 sentencias en Fortran-Assembler y, al ser reescrito en APL, todo el programa se podía imprimir en dos folios.[1] Por otra parte, a pesar de ser un lenguaje de tan alto nivel, también es capaz de manipular a escala de bits y tiene interfaces con lenguajes de programación de bajo nivel (C, ensamblador...) mediante los llamados procesadores auxiliares.

Tiene la propiedad de que desde una rutina se pueden (en tiempo de ejecución) crear, compilar y ejecutar, otras rutinas, lo que lo hace tambien muy apropiado para la elaboración automática de compiladores e intérpretes.

Algunas dificultades (poco importantes), radican en que:

  1. Necesita pegatinas (o marcar con rotulador permanente) en el teclado, para poder ver los operadores (símbolos propios de APL) que se asignan a cada tecla (pueden redefinirse por el usuario cuando y como guste).
  2. Los programas escritos en APL son muy concisos y ello puede hacer que sean prolijos de documentar y de comprender para los principiantes. Sin embargo, para los iniciados, su brevedad y el orden de ejecución (cada sentencia SIEMPRE se ejecuta de derecha a izquierda), les facilita enormemente su seguimiento.
  3. Al ser interpretado (en tiempo de ejecución), su velocidad es típicamente algo más lenta que la de las aplicaciones con lenguajes de programación compilados. Ello, hoy en dia, con las grandes velocidades de los procesadores, no supone una desventaja apreciable, en la mayor parte de las aplicaciones. Por contra, facilita su prueba y revisión interactiva inmediata.

Aplicaciones del APL[editar]

Como ejemplo muy sencillo: APL puede resolver un sistema de ecuaciones en una sola sentencia. Si lo aplicamos a un sistema de ecuaciones concreto:

7x + 4y + 2z = 4

6x + 8y + 9z = 7

4x + 2y + 1z = 2

Basta ejecutar UNA UNICA sentencia de APL, cuya sintaxis es:

4 7 2 [÷] 3 3 ρ 7 4 2 6 8 9 4 2 1

Para obtener inmediatamente el valor resultado para cada variable (x, y, z):

0 1.1 -0.2

El APL, al ser tan conciso y potente, permite tiempos de desarrollo y pruebas muy cortos, resultando un lenguaje muy adecuado para campos muy variados, tales como los de Matemáticas, Estadistica, Negocios, Inteligencia artificial, Desarrollo de prototipos, etc.

Entre sus aplicaciones más conocidas está su uso en la película Tron, de Walt Disney, para la generación de los efectos especiales,[2] y en el sistema Deep Blue, de IBM, que venció a Kasparov en ajedrez.[cita requerida].[3]

Como curiosidad, en la novela Cheap Complex Devices, de J. C. Sundman, el autor afirma que el contenido del libro ha sido escrito automáticamente por un ordenador, usando código generado en APL, lo que le valió el premio Douglas R. Hofstadter, de creación de novelas por ordenador, en 1997.[4] Todo ello, naturalmente, es un artificio literario.

Sucesores del APL[editar]

Kenneth Iverson, posteriormente, estuvo al frente del desarrollo de un lenguaje de programación, que presentaban como el sucesor de APL, llamado J. Una de las características particulares de J es lo que se ha dado en denominar programación funcional tácita, en que se considera que, para expresar programas, no es necesario nombrar variables, ni parámetros a funciones (Estos conceptos de programación tácita han sido incorporados al lenguaje Logo en la biblioteca LogoFE). En J, la variedad de las rutinas (que en APL se llaman "operadores"), es mucho mayor.

Referencias[editar]

  1. M. Alfonseca, "SIAL/71, a Continuous Simulation Compiler", in "Advances in Cybernetics and Systems", Ed. J. Rose, Gordon and Breach, London, Vol. 3, 1974, 1319-1340.
  2. David Selby, "Jottings from the business intelligence jungle". In APL '02: Proceedings of the 2002 conference on APL, 2002, páginas 190-197.
  3. Javier Cordero Fernández - Ajedrez de ataque. «Kasparov vs Deep Blue, Filadelfia 1996 y Nueva York 1997». 
  4. «Wetmachine». Consultado el 2009. 

Enlaces externos[editar]

  • APL - Mi Universo HACT Breve introducción en español a las convenciones sintácticas del lenguaje y biografía de K. E. Iverson