Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Un concurso de programación… pero usando APL

APL (que significa A Programming Language) fue uno de los primeros lenguajes de computadora. Hoy Dyalog mantiene un dialecto de APL y han promovido un...

apl00

APL (que significa A Programming Language) fue uno de los primeros lenguajes de computadora. Hoy Dyalog mantiene un dialecto de APL y han promovido un concurso para introducir este lenguaje a las nuevas generaciones de programadores. La razón de ello es que APL se diseñó pensando en la brevedad y el poder. Por ejemplo, ¿en qué lenguaje podría escribirse la suma de los primeros 100 enteros usando solamente el presionar nueve teclas? Con APL se puede aunque una de estas teclas no se encuentra en los teclados tradicionales.

APL se inventó por los años sesenta del siglo pasado, y fue desarrollado por Kenneth E. Iverson, quien creó una notación matemática para manipular arreglos, empezando en 1957. En el prefacio de su libro “A Programming Language”, dice: “Las matemáticas aplicadas están preocupadas con el diseño y análisis de ciertos procedimientos explícitos para calcular los valores exactos o aproximados de varias funciones. Estos procedimientos explícitos se llaman algoritmos o programas. Debido a la anotación usada para la descripción de estos programas, se exhibe una estructura sintáctica considerable y por ello se llama un lenguaje de programación”. El libro mencionado está disponible como PDF, cortesía de The Software Preservation Group.

APL no debería ser tratado como un lenguaje de la historia, pues aún tiene mucho que dar. De acuerdo al Wiki de APL, “es uno de los lenguajes más viejos, en términos de años, y jóvenes, en términos de conceptos, de todos los lenguajes de programación. Este es un lenguaje interpretado con capacidades para usar arreglos y características de depuración que hacen del lenguaje una elección excelente para un enfoque ágil. APL es el primer lenguaje funcional de hecho.

apl01Pero ¿por qué no se usa? Probablemente es que su notación es muy matemática y adecuarse a ello tal vez no es lo más conveniente. De hecho, algunos símbolos de APL no se pueden tener directamente en el teclado. Se requiere pues una manera de poner ciertos símbolos. Sin embargo, ahora es más fácil. El sito Try APL tiene de hecho un teclado en la pantalla y una hoja descriptora de estos símbolos, como si fuese un “acordeón” escolar.

Por otra parte, Dyalog es una compañía que mantiene una plataforma comercial con una versión extendida del núcleo del APL, en donde se da una licencia gratuita a los que son estudiantes de tiempo completo. Por ello, esta empresa organiza este concurso, en donde el nicho son los estudiantes pero cualquiera puede entrarle. Los no estudiantes, sin embargo, no pueden acceder a los premios en metálico.

El total de premios es de 8500 dólares, que se distribuirán en 43 premios:

  • Gran premio de 2500 dólares
  • Segundo premio de 1250 dólares
  • Tercer premio de 750 dólares para los tres mejores competidores sobre las dos fases del concurso.
  • 100 dólares a cada uno de los primeros 20 participantes en la fase I
  • 100 dólares a cada uno de los 20 primeros participantes de la fase II

Un no-estudiante ganará un registro complementario para el Dyalog User meeting del 2015, que se llevará a cabo en Sicilia, Italia, en septiembre de este mismo año. El mejor estudiante del concurso será invitado al Dyalog 15 para recibir su premio y presentar su trabajo. El estudiante recibirá sus viáticos que son alrededor de 3500 dólares más 500 dólares extras por gastos incidentales.

No se espera que los concursantes tengan experienc ia en APL y la fase I del concurso introduce el lenguaje y tiene 10 pequeños problemas que pueden ser resueltos usando una sola línea de código APL. En la fase II las cosas se ponen mejor, con un conjunto de problemas de variada complejidad. Ahí los concursantes tendrá que subir sus archivos con el código y la solución. La fecha límite del concurso es el 16 de julio.

Referencias:

APL Programming Challenge 
APL Wiki 
Try APL
A Programming Language (pdf) 
i-programmer

Comentarios