fbpx
Wikipedia

APL

APL (A Programming Language) es un lenguaje de programación que se originó a partir de la notación matemática desarrollada por Kenneth Iverson en 1957, quien lo implementó en 1962 cuando fue contratado por IBM en ese mismo año.

A Programming Language
Desarrollador(es)
Kenneth E. Iverson, Larry Breed, Dick Lathwell, Roger Moore and others
Información general
Paradigma Array, Funcional, Estructurado, Modular
Apareció en 1966
Diseñado por Kenneth E. Iverson
Licencia Propietario, Fuente Abierta

Características

El APL es un lenguaje aplicativo o un lenguaje para aplicar algo, similar a un lenguaje funcional.

Utiliza operadores parametrizables, por lo que es muy conciso. Su sintaxis está basada en pocos "operadores" y utiliza un conjunto especial de caracteres que no están presentes en el código ASCII. El conjunto de operaciones se fundamenta en álgebra lineal abstracta, por lo que es un lenguaje idóneo para trabajar con vectores y matrices. Cuenta con un repertorio de operadores que le permite componer nuevas operaciones lógicas o matemáticas.

Al contar con productos cruz y puntos generalizados, una sola oración puede traducirse en muchas líneas de otros lenguajes, como Fortran, Basic, PL1, C, etc. Ya que, en estos, estas operaciones y otras se implementan mediante loops o ciclos iterativos (bucles).

Un ejemplo de ello es el lenguaje de simulación de circuitos, SIAL, que habiendo ocupado aproximadamente 25 000 oraciones en el lenguaje Fortran-Assembler, pasó al ser reescrito en APL a ocupar dos folios en su versión impresa.[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, etc.) mediante los llamados procesadores auxiliares.

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

Algunas dificultades prácticas 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 oración 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. Por lo cual, hoy en día, con las grandes velocidades de los procesadores, no supone una desventaja apreciable en la mayor parte de las aplicaciones. Por el contrario, facilita su prueba y revisión interactiva inmediata.
  4. Aunque existe una versión libre disponible en el catálogo de la "Free Software Fundation", la mayoría de los intérpretes o compiladores de APL son de código cerrado y sus usuarios no comparten su código, lo que impide que se extienda su uso, al nivel que tienen otros lenguajes para hacer cálculos aritméticos como Matlab, Mathematica, SAGE, Maxima, Octave entre otros.

Ejemplos de APL

APL puede resolver un sistema de ecuaciones en una sola oración si lo aplicamos a un sistema de ecuaciones concreto. Por ejemplo:

7x + 4y + 2z = 4

6x + 8y + 9z = 7

4x + 2y + 1z = 2

Basta ejecutar UNA ÚNICA oración de APL, cuya sintaxis es:

4 7 2  3 3 ρ 7 4 2 6 8 9 4 2 1 

Donde el operador ρ (rho) formatea la lista de números en una matriz de 3x3. El operador ⌹ ("dominó") calcula la inversa de la matriz y la multiplica por el vector 4 7 2, generando la solución para cada variable (x, y, z):

0 1.1 -0.2 

El programa anterior, podría utilizar bibliotecas para las operaciones con matrices, Fortran permite arreglos redimensionables, y es adecuado para el cómputo en paralelo. Pero se necesitan algunas declaraciones para los arreglos y llamar a las subrutinas, y en otros lenguajes poco flexibles para crear subrutinas con arreglos, todavía es más complicado porque se tienen que codificar mediante loops la inversión de la matriz y el producto, mínimo unas 20 líneas.

El APL, permite pensar directamente en las operaciones algebraicas que se pueden expresar de manera muy concisa, por ello permite tiempos de desarrollo y pruebas muy cortos. Por ello es un lenguaje muy adecuado para campos muy variados, tales como los de Matemáticas, Estadística, Negocios, Inteligencia artificial, Desarrollo de prototipos, etc.

APL en la cultura popular

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]

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.[3]​ Todo ello, naturalmente, es un artificio literario.

Sucesores del APL

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.

Influencia en otros lenguajes

John Backus en la cátedra que dio al recibir el premio Turing, presentó FP/FFP. FP es un lenguaje funcional y FFP son formas funcionales, que se basaron en el lenguaje aplicativo APL. Un ejemplo de las formas funcionales en APL es la operación reduce op/vector que reduce un vector aplicando el operador. +/1 2 3 4 computa 1 + 2 + 3 + 4 , en algunos lenguajes como algunos dialectos de Lisp conservó el nombre reduce, que se heredó a otros lenguajes funcionales.

Referencias

  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. . Archivado desde el original el 30 de marzo de 2009. Consultado el 2009. 

Enlaces externos

  • Breve introducción en español a las convenciones sintácticas del lenguaje y biografía de K. E. Iverson
  • Lenguaje BASIC Lenguaje de programación que se utilizó junto con APL en la IBM 5100
  • IBM 5100 El IBM 5100 Portable Computer fue un computador de escritorio introducido en septiembre de 1975, seis años antes del IBM PC.
  •   Datos: Q296187
  •   Multimedia: APL (programming language)

para, otros, usos, este, término, véanse, biblioteca, pública, austin, acuerdo, producción, limpia, este, artículo, detectó, siguiente, problema, favor, edítalo, para, mejorarlo, necesita, wikificado, conforme, convenciones, estilo, wikipedia, algunos, parámet. Para otros usos de este termino veanse Biblioteca Publica de Austin y Acuerdo de Produccion Limpia En este articulo se detecto el siguiente problema Por favor editalo para mejorarlo Necesita ser wikificado conforme a las convenciones de estilo de Wikipedia Algunos parametros de esta plantilla se encuentran en blanco Este aviso fue puesto el 1 de enero de 2016 APL A Programming Language es un lenguaje de programacion que se origino a partir de la notacion matematica desarrollada por Kenneth Iverson en 1957 quien lo implemento en 1962 cuando fue contratado por IBM en ese mismo ano A Programming LanguageDesarrollador es Kenneth E Iverson Larry Breed Dick Lathwell Roger Moore and othersInformacion generalParadigmaArray Funcional Estructurado ModularAparecio en1966Disenado porKenneth E IversonLicenciaPropietario Fuente Abierta editar datos en Wikidata Indice 1 Caracteristicas 2 Ejemplos de APL 3 APL en la cultura popular 4 Sucesores del APL 5 Influencia en otros lenguajes 6 Referencias 7 Enlaces externosCaracteristicas EditarEl APL es un lenguaje aplicativo o un lenguaje para aplicar algo similar a un lenguaje funcional Utiliza operadores parametrizables por lo que es muy conciso Su sintaxis esta basada en pocos operadores y utiliza un conjunto especial de caracteres que no estan presentes en el codigo ASCII El conjunto de operaciones se fundamenta en algebra lineal abstracta por lo que es un lenguaje idoneo para trabajar con vectores y matrices Cuenta con un repertorio de operadores que le permite componer nuevas operaciones logicas o matematicas Al contar con productos cruz y puntos generalizados una sola oracion puede traducirse en muchas lineas de otros lenguajes como Fortran Basic PL1 C etc Ya que en estos estas operaciones y otras se implementan mediante loops o ciclos iterativos bucles Un ejemplo de ello es el lenguaje de simulacion de circuitos SIAL que habiendo ocupado aproximadamente 25 000 oraciones en el lenguaje Fortran Assembler paso al ser reescrito en APL a ocupar dos folios en su version impresa 1 Por otra parte a pesar de ser un lenguaje de tan alto nivel tambien es capaz de manipular a escala de bits y tiene interfaces con lenguajes de programacion de bajo nivel C ensamblador etc mediante los llamados procesadores auxiliares Tiene la propiedad de que desde una rutina se puede en tiempo de ejecucion crear compilar y ejecutar otras rutinas lo que hace que sea tambien muy apropiado para la elaboracion automatica de compiladores e interpretes Algunas dificultades practicas radican en que Necesita pegatinas o marcar con rotulador permanente en el teclado para poder ver los operadores simbolos propios de APL que se asignan a cada tecla pueden redefinirse por el usuario cuando y como guste 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 ejecucion cada oracion siempre se ejecuta de derecha a izquierda les facilita enormemente su seguimiento Al ser interpretado en tiempo de ejecucion su velocidad es tipicamente algo mas lenta que la de las aplicaciones con lenguajes de programacion compilados Por lo cual hoy en dia con las grandes velocidades de los procesadores no supone una desventaja apreciable en la mayor parte de las aplicaciones Por el contrario facilita su prueba y revision interactiva inmediata Aunque existe una version libre disponible en el catalogo de la Free Software Fundation la mayoria de los interpretes o compiladores de APL son de codigo cerrado y sus usuarios no comparten su codigo lo que impide que se extienda su uso al nivel que tienen otros lenguajes para hacer calculos aritmeticos como Matlab Mathematica SAGE Maxima Octave entre otros Ejemplos de APL EditarAPL puede resolver un sistema de ecuaciones en una sola oracion si lo aplicamos a un sistema de ecuaciones concreto Por ejemplo 7x 4y 2z 46x 8y 9z 74x 2y 1z 2Basta ejecutar UNA UNICA oracion de APL cuya sintaxis es 4 7 2 3 3 r 7 4 2 6 8 9 4 2 1 Donde el operador r rho formatea la lista de numeros en una matriz de 3x3 El operador domino calcula la inversa de la matriz y la multiplica por el vector 4 7 2 generando la solucion para cada variable x y z 0 1 1 0 2 El programa anterior podria utilizar bibliotecas para las operaciones con matrices Fortran permite arreglos redimensionables y es adecuado para el computo en paralelo Pero se necesitan algunas declaraciones para los arreglos y llamar a las subrutinas y en otros lenguajes poco flexibles para crear subrutinas con arreglos todavia es mas complicado porque se tienen que codificar mediante loops la inversion de la matriz y el producto minimo unas 20 lineas El APL permite pensar directamente en las operaciones algebraicas que se pueden expresar de manera muy concisa por ello permite tiempos de desarrollo y pruebas muy cortos Por ello es un lenguaje muy adecuado para campos muy variados tales como los de Matematicas Estadistica Negocios Inteligencia artificial Desarrollo de prototipos etc APL en la cultura popular EditarEntre sus aplicaciones mas conocidas esta su uso en la pelicula Tron de Walt Disney para la generacion de los efectos especiales 2 Como curiosidad en la novela Cheap Complex Devices de J C Sundman el autor afirma que el contenido del libro ha sido escrito automaticamente por un ordenador usando codigo generado en APL lo que le valio el premio Douglas R Hofstadter de creacion de novelas por ordenador en 1997 3 Todo ello naturalmente es un artificio literario Sucesores del APL EditarKenneth Iverson posteriormente estuvo al frente del desarrollo de un lenguaje de programacion que presentaban como el sucesor de APL llamado J Una de las caracteristicas particulares de J es lo que se ha dado en denominar programacion funcional tacita en que se considera que para expresar programas no es necesario nombrar variables ni parametros a funciones Estos conceptos de programacion tacita 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 Influencia en otros lenguajes EditarJohn Backus en la catedra que dio al recibir el premio Turing presento FP FFP FP es un lenguaje funcional y FFP son formas funcionales que se basaron en el lenguaje aplicativo APL Un ejemplo de las formas funcionales en APL es la operacion reduce op vector que reduce un vector aplicando el operador 1 2 3 4 computa 1 2 3 4 en algunos lenguajes como algunos dialectos de Lisp conservo el nombre reduce que se heredo a otros lenguajes funcionales Referencias Editar 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 David Selby Jottings from the business intelligence jungle In APL 02 Proceedings of the 2002 conference on APL 2002 paginas 190 197 Wetmachine Archivado desde el original el 30 de marzo de 2009 Consultado el 2009 Enlaces externos EditarAPL Mi Universo HACT Breve introduccion en espanol a las convenciones sintacticas del lenguaje y biografia de K E IversonLenguaje BASIC Lenguaje de programacion que se utilizo junto con APL en la IBM 5100IBM 5100 El IBM 5100 Portable Computer fue un computador de escritorio introducido en septiembre de 1975 seis anos antes del IBM PC Datos Q296187 Multimedia APL programming language Obtenido de https es wikipedia org w index php title APL amp oldid 137348658, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos