EMU-Code: Effective Mark-Up of Source Code

Compilación de código con marcado XML

Emu

Si la representación del código fuente con marcado XML fuera una práctica extendida, resultaría interesante desarrollar compiladores que aceptasen directamente el código XML como entrada. En realidad no debe resultar demasiado difícil hacerlo, ya que bastaría cambiar parte del front-end de un compilador convencional para transformarlo en un compilador de código marcado XML. Incluso el compilador transformado debe resultar más sencillo que el original, ya que el marcado XML lleva ya implícito el parsing del código fuente.

En el prototipo de entorno EMU-Code no se llega a tanto, sino que se combina la representación de código con marcado XML con el uso de un compilador convencional, que sólo acepta el texto fuente normal como entrada.

Proceso simple de compilación

En su forma más sencilla, la compilación del código marcado XML se realiza en dos pasos:

???

En el primer paso se genera el texto del código fuente normal a partir del código marcado XML. En el segundo paso se usa un compilador convencional para compilar el código generado. La generación de código fuente normal se puede hacer con una sencilla hoja de transformación XSLT.

Presentación de mensajes de error de compilación

Un compilador convencional genera mensajes de diagnóstico referidos a determinadas líneas de texto del código fuente. Lamentablemente los números de línea del código normal usado como representación intermedia no pueden ser relacionados fácilmente con el elemento XML al que corresponden. Para facilitar la comprensión de los mensajes se ha optado por insertarlos en el propio código marcado, usando la notación de comentarios XML. El proceso de compilación corresponde ahora al siguiente esquema:

???

Ahora aparece un tercer paso, en el que un anotador combina los mensajes de compilación con el código XML inicial y genera un código anotado con los mensajes. Los mensajes se insertan inmediatamente detrás del elemento al que corresponde cada uno de ellos.

Para facilitar la construcción del anotador, los elementos del código XML se van numerando correlativamente, y el número de cada elemento se inserta al comienzo de la línea de código normal generada a partir de él. El anotador utiliza el código normal como información adicional para relacionar el número de línea que figura en el mensaje de error con el número del elemento XML al que corresponde.

Compilación de código modular


Copyright © 2004 Manuel Collado: mcollado@fi.upm.es