Metadatos de MAPL
Entre el código a generar por las plantillas anteriores aparecen directivas de metadatos de MAPL (son todas aquellas líneas que comienzan por #
). En concreto, en la especificación se han usado las siguientes directivas: #source
, #line
y #global
. En este apartado, se describirá brevemente la función de cada una de ellas.
WARNING
Todas las directivas de metadatos de MAPL son opcionales y se usan para facilitar la depuración del código generado. Pero si se desea, se pueden eliminar de la especificación anterior y de su implementación. Por tanto, este capítulo puede ser ignorado.
Sin embargo, es altamente recomendable usarlas para sacar el máximo partido al depurador de MAPL, llamado GVM.exe.
Directivas #source
y #line
Para entender mejor la función de estas dos directivas, basta ver en la imagen siguiente lo que se obtiene al abrir con GVM el código de un programa que no incluya estas directivas:
Como puede comprobarse, es difícil saber a qué sentencia del programa fuente corresponde cada instrucción del programa.
Las directivas #source
y #line
se utilizan, precisamente, para indicar de qué línea del fichero fuente proviene cada instrucción. Se muestra ahora una imagen con el mismo programa incluyendo estas directivas:
Puede comprobarse que ahora es mucho más fácil saber que la instrucción que se estaba ejecutando, el push 2
, pertenece a la sentencia print
. Esto será muy útil cuando haga falta determinar qué sentencia ha generado alguna instrucción errónea.
Directiva '#global'
La directiva #global
informa a GVM de las variables que hay en el programa y sus tipos. Gracias a esta información, GVM puede hacer dos cosas:
- Dibujar las variables mostrando su posición en memoria. Puede verse la ubicación de las variables
f
ei
en el panel central de la segunda imagen (las cuales no aparecían en la primera imagen). - Comprobar que todo acceso a memoria sea en una dirección válida de una variable. Se podrán detectar así escrituras a direcciones erróneas y/o con tipos incorrectos.
TIP
Para más información sobre estas directivas se puede consultar el capítulo “4 Metadatos” del tutorial de MAPL.