El siguiente trabajo y su código fuente asociado están bajo una
licencia de Creative Commons.
Después de mucho tiempo jugando con las versiones beta de ANTLR v3, con la reciente publicación de su versión definitiva me decidí a terminar un proyecto personal que tenía entre manos desde hace unos meses. En éste me surgió la necesidad de incorporar algún método que permitiera la ejecución de pequeños scripts para automatizar determinadas tareas. Esta situación resultaba inmejorable para experimentar un poco con herramientas de generación de compiladores y máquinas virtuales, por tanto olvidando una vez más la regla de no reinventar la rueda me propuse construir desde cero todo lo necesario para conseguir la ejecución de scripts en mi proyecto. Los requerimientos del lenguaje de script y la máquina virtual a implementar son sencillos:
Dado que existe aún poca documentación sobre ANTLR 3, y mucho menos en español, voy a publicar aquí a modo de ejemplo todos los pasos necesarios para construir el sistema propuesto. Espero que este material pueda resultar útil para aquellos que se propongan desarrollar un sistema similar.
El nuestro estará escrito completamente en C# y estará formado por los siguientes módulos:
ANTLR será usado para construir el compilador, que estará formado a su vez por los analizadores léxico y sintáctico, un analizador semántico para el cálculo y comprobación de tipos, y un generador de código a partir del árbol de sintáxis abstracta (AST) construido durante las fases anteriores. Por su parte, tanto el ensamblador como la máquina virtual se escribirán sin utilizar ninguna herramienta de apoyo, dado que son relativamente sencillos de implementar.