Esta es una demostración en vivo de 1975 del lenguaje de programación APL, presentada por el profesor Bob Spence del Imperial College de Londres. Bob se unió al cuerpo docente del Imperial College en 1962 y, en el momento de la publicación del video, era Profesor Emérito en el Departamento de Ingeniería Eléctrica y Electrónica (EEED). Lamentablemente, falleció el 20 de septiembre de 2024, a los 91 años .
Su campo de trabajo abarcó desde el diseño de ingeniería hasta la interacción humano-computadora (HCI). A lo largo de su carrera, se le atribuye la invención de la primera técnica de “enfoque + contexto”, conocida como Pantalla Bifocal o lente de ojo de pez, la cual fue presentada en otro video.
Sobre APL
APL, cuyo nombre proviene del libro A Programming Language, es un lenguaje de programación creado en los años 60 por Kenneth E. Iverson. Se caracteriza por usar como estructura principal los arreglos multidimensionales y por emplear una extensa variedad de símbolos gráficos especiales para representar funciones y operadores, lo que permite escribir código de forma extremadamente compacta.
Estas funciones pueden aplicarse de dos maneras: díadica, cuando operan sobre dos argumentos (por ejemplo, A + B
suma elemento a elemento dos arrays del mismo tamaño); o monádica, cuando trabajan con un único argumento (por ejemplo, ×A
aplica la operación “signo” a cada elemento de A).
Gracias a esta dualidad, es posible condensar algoritmos complejos en una sola línea de código —por ejemplo, existen implementaciones del famoso “Game of Life” de Conway escritas en una única expresión en APL— lo que demuestra el poder y la concisión del lenguaje [Dyadic functions – APL wiki] [Monadic function - APL wiki].
El diseño de APL ha tenido una influencia significativa en áreas como la modelación de conceptos, el desarrollo de hojas de cálculo, la programación funcional y los paquetes de cálculo matemático. Además, ha servido de inspiración para la creación de otros lenguajes de programación de este mismo estilo como UIUA y BQN.
Existen diversas implementaciones modernas de APL, como APLX, Dyalog
Entre las versiones gratuitas se encuentra GNU APL para Linux y NARS2000 para W1nd0w$.
Como se tipeaban caracteres Unicode?
Debido a su extenso conjunto de símbolos únicos, APL requería teclados especializados que permitieran ingresar estos caracteres de manera eficiente. Los teclados tradicionales de APL, como los utilizados en terminales IBM, asignaban símbolos específicos a combinaciones de teclas utilizando modificadores como Alt, Shift y Ctrl. Por ejemplo, en algunos sistemas, se podía ingresar el símbolo ⍴ (rho) con Alt+R, y ⍳ (iota) con Alt+I, aprovechando la asociación mnemotécnica con la letra inicial del nombre del símbolo en inglés . Además, se desarrollaron diseños de teclado personalizados y adhesivos para facilitar la escritura de código en APL.
Con la adopción de Unicode, los símbolos de APL fueron incorporados al bloque “Miscellaneous Technical”, permitiendo su representación en sistemas modernos sin necesidad de hardware especializado . Para asegurar una visualización clara y precisa de estos símbolos, se crearon fuentes tipográficas específicas como APL385 Unicode, APLX Upright y SimPL, diseñadas por tipógrafos familiarizados con la estética y funcionalidad de APL . Estas fuentes son esenciales para mantener la legibilidad y coherencia del código escrito en APL.
Teclado con simbolos de APL:
Ejemplos
⍝
Es para los comentarios.
-
- Suma de todos los elementos de un vector
+/ 1 2 3 4 5
output: 15
-
- Producto escalar (dot product) de dos vectores
+/ 1 2 3 × 4 5 6 ⍝ (1×4)+(2×5)+(3×6)
32
-
- Crear una matriz 2×3
2 3 ⍴ ⍳6
1 2 3
4 5 6
- Escaneo (scan) de sumas parciales
+\ 1 2 3 4
1 3 6 10
- Producto exterior de dos vectores
1 2 3 ∘.× 4 5
output:
4 5
8 10
12 15
- Filtrado: seleccionar elementos pares de un vector
{2|⍵} 10 11 12 13 14 15
output: 0 1 0 1 0 1
Algunos links
Wikiless - APL
Prueba dyalog APL
Aprende APL
APL MOOC
Ejemplos APL
Conway’s Game Of Life in APL