La gran mayoría de nosotros los desarrolladores de software nos enfrentamos en el mundo real a problemas de más o menos alto nivel, y sobre todo en estos días en los que un móvil es más potente que todo el arsenal computacional de la NASA que puso al hombre en la luna, podemos permitirnos el lujo de olvidarnos de qué sucede en las entrañas los aparatos que programamos.
Para gente perdida en abstracciones pero curiosa como nosotros viene muy bien PL/1 Language Tools, un set de herramientas muy muy sencillitas, con ánimo didáctico, con el que podremos asomarnos a ver qué sucede para que el código que escribimos en nuestro IDE favorito acaba convirtiéndose en unos y ceros viajando por semiconductores haciendo cosas.
PL/1 incorpora un analizador léxico, un parser, un compilador, un intérprete, un ensamblador y una máquina virtual. Es decir, toda la cadena de ejecución, desde el código fuente hasta la máquina donde se ejecutará. Pero no nos asustemos, cada una de estas herramientas está implementada en archivos separados de pocos cientos de sencillas líneas en Python, por lo que podremos desentrañarlas fácilmente conociendo un poco de este lenguaje; incluso podremos implementar nuestro propio lenguaje inventado manipulando estos archivos. Trae una documentación un tanto pobre, pero al tratarse de conceptos muy comunes podemos informarnos de lo que no comprendamos de un vistazo a la Wikipedia o un rato de googleo, así que por muy principiante que seas harías bien en echar un ojo.
Seguro que, al volver al mundo de alto nivel, indagarás más a menudo sobre cómo tu compilador o intérprete hace para traducir a código máquina lo que estás escribiendo.
En la sección de investigación de los responsables proyecto, por cierto, hay bastante material para introducirse en conceptos básicos de diversas áreas de la informática. Muy recomendable.
Sitio oficial | OrionTransfer