Programa en latín

latinMe he enterado de la existencia de un módulo de perl llamado Lingua::Romana::Perligata. Es algo antiguo, de 2001 según CPAN. Pero como lo he descubierto ahora y es posible que muchos no lo conozcan, lo comento como curiosidad.

Este módulo permite escribir programas de Perl en latín. ¿Para qué? Por simple diversión, para ofuscar código o (¿por qué no?) para aprender latín. He de reconocer que es francamente ingenioso. No voy a comentar todo el código, solo algunos detalles:

variables

Se distingue entre escalares, arrays y hashes por la declinación y el número. Así el singular neutro de la segunda declinación corresponde a escalar (nextum → $next), el plural neutro de la segunda declinación corresponde a un vector (nexta → @next) y el plural de la cuarta declinación corresponde a un hash (nextus → %next). La variable puede colocarse a la derecha utilizando el acusativo (a modo de objeto directo) o a la izquierda utilizando el dativo (a modo de objeto indirecto) mientras que podemos referirnos a elementos de matrices y hashes usando el genitivo (posesivo).

Operadores

La asignación se hace con el verbo dare en tercera persona del singular de presente de indicativo: da. La suma es con el verbo adde (suma) en contexto nulo, addementum en contexto escalar y addementa en lista.

Operaciones de control

Perligata Perl
si … fac if …
nisi … fac unless …
dum … fac while …
donec … fac until …
per (quisque) … in … fac for(each) …
posterus next
ultimus last
reconatus redo
confectus continue

Aquí teneis el resto de la gramática de perlingata.

vía yo, programador.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s