APL (A Programing Language, tamén coñecido como Array Processing Language desde fai algúns anos) é un linguaxe de programación interpretado desenvolvido por Kenneth Iverson, de IBM, a finais dos anos 60.

É unha linguaxe moi conciso, cunha sintaxe moi sinxela. Está orientado a traballos con matrices, coa que se poden facer todo tipo de operacións lóxicas ou matemáticas. Ata se poden definir novas operacións matriciales.

É dunha potencia tremenda. Unha soa sentenza pode traducirse en miles delas noutras linguaxes, por exemplo Fortran. Como exemplo, a linguaxe de simulación de circuítos, SIAL, ocupaba preto de 25 000 sentenzas en Fortran-Assembler e, ao ser reescrito en APL, todo o programa podíase imprimir en dous folios [1]. Por outra banda, a pesar de ser unha linguaxe de tan alto nivel, tamén é capaz de manipular a escala de bits e ten interfaces con linguaxes de programación de baixo nivel (C, ensamblador...) mediante os chamados procesadores auxiliares.

Ten a propiedade de que desde unha rutina pódese crear, compilar e executar, en tempo de execución, outras, o que o fai moi apropiado para a fabricación de compiladores e intérpretes.

Os seus problemas radican en que: 1) Necesita teclado especial para pór os operadores lóxicos e simbólicos. 2) Os programas escritos en APL son tan concisos que son difíciles de documentar e de comprender.

Aplicacións do APL

editar

O APL, ao ser tan conciso, é unha linguaxe que permite un ciclo de desenvolvemento moi veloz. Por outra banda, ao ser interpretado, a velocidade de execución é tipicamente máis lenta que a das linguaxes de programación compilados. Por iso, considérase unha boa linguaxe para o desenvolvemento de prototipos.

Entre as súas aplicacións máis coñecidas está o seu uso na película Tron de Walt Disney para a xeración dos efectos especiais [2], e no sistema Deep Blue de IBM que venceu a Kasparov ao xadrez.

Como curiosidade, na novela Cheap Complex Devices de J. C. Sundman, o autor afirma que o contido do libro foi xerado automaticamente por un computador escrito en APL, o que lle valeu o premio Douglas R. Hofstadter de creación de novelas por computador en 1997 [3]. Todo iso, naturalmente, é un artificio literario.

Sucesores do APL

editar

Kenneth Iverson, posteriormente, estivo á fronte do desenvolvemento dunha linguaxe de programación que presentaban como o sucesor de APL, chamado J. Unha das características particulares de J é o que se deu en denominar programación funcional tácita; onde se considera que para expresar programas non é necesario nomear variables, nin parámetros a funcións (Estes conceptos de programación tácita foron incorporados á linguaxe Logo na biblioteca LogoFE). En J, a variedade das rutinas que en APL chámanse #operador\\\ é moito maior.

  • M. Alfonseca, "SIAL/71, a Continuous Simulation Compiler", in "Advances in Cybernetics and Systems", Ed. J. Rose, Gordon e Breach, Londres, Vol. 3, 1974, 1319-1340.
  • David Selby, "Jottings from the business intelligence jungle". In APL '02: Proceedings of the 2002 conference on APL, 2002, páxinas 190-197.