Programa en latín

29 dUTC Abril dUTC 2006 at 21:51 | In Curiosidades, Programación | Leave a Comment

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.

Aún no hay comentarios »

Canal RSS de los comentarios de la entrada. URI para TrackBack.

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Blog de WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.