<%title%>El compilador (ediv) <%/title%>

El compilador (ediv)

El compilador en sí es un ejecutable llamado ediv. Se encuentra en la carpeta bin, y es el programa encargado de compilar un archivo de código fuente .prg en lenguaje DIV para crear un ejecutable independiente a partir de él.

Este ejecutable es un programa de consola. Para funcionar, necesita que le pasemos algunos parámetros en la línea de comandos. La sintaxis es la siguiente:

ediv [opciones] archivo.prg [ejecutable]

A continuación se detallan cada uno de los argumentos:

Una vez ejecutado el programa con los parámetros adecuados, el compilador nos irá mostrando el estado del proceso, y por último nos informará si la compilación ha tenido éxito. Si ocurre algún error, se mostrará un mensaje explicando el error. Si el error se encuentra en el fichero fuente, se nos indicará el número de línea y de carácter donde se localiza el error. Por ejemplo:


malvado.prg : 6 : 18 : ERROR 9 : Esperando ';'
 
 
 
 
nombre del fichero en el que se encuentra el error
 
 
 
código del
error
 
descripción del error
número de línea
       
número de carácter en la línea
   

Es posible que, una vez corregido el error, al intentar compilar de nuevo aparezca otro error. Hay que corregir todos los errores del programa fuente para que eDIV sea capaz de compilarlo. También es posible que se muestren mensajes de advertencia; si es así, eDIV compilará el programa correctamente (siempre que no encuentre ningún error), aunque es posible que desee corregir el listado para que no se muestren esos mensajes.

 

Esquema de funcionamiento del compilador

No está de más tener una idea de las operaciones que hace el compilador, especialmente por si surge algún problema, para saber de dónde puede venir el fallo y cómo se puede arreglar.

  1. Primero, eDIV lee la configuración del archivo ediv.cfg. Dicho archivo es necesario, ya que contiene información acerca de los ajustes por defecto del compilador y las prioridades de las librerías.
  2. A continuación, el programa detecta el idioma del sistema (si no se ha forzado uno en el archivo de configuración).
  3. Luego se procesan los argumentos de la línea de comandos.
  4. Después se carga el archivo fuente (.prg) en memoria y se compone el nombre del ejecutable final.
  5. Seguidamente se comprueba que existe el stub correspondiente al Sistema Operativo elegido. El stub es un archivo con extensión .rel o .dbg que contiene el primer segmento del ejecutable final, al cual después se agregará el código del programa compilado.
  6. A continuación se llama a una rutina de preparación que pone a cero los datos internos del compilador.
  7. Después se cargan todas las librerías que se encuentran en el directorio correspondiente.
  8. Luego se realiza una primera compilación que tiene como único objetivo saber qué elementos de las librerías se utilizan, para poder descartar las librerías que no se usan en el programa.
  9. Se vuelve a llamar a la rutina del paso 6, para restablecer todos los parámetros del compilador.
  10. De nuevo se cargan las librerías, pero esta vez sólamente las que se utilizan.
  11. Se compila de nuevo el programa. El resultado es un código intermedio que ha reservado únicamente la memoria que necesita para las librerías que el programa necesita específicamente. De esta forma hemos ahorrado mucha memoria y espacio en el paquete final del programa compilado (ejecutable + librerías), ya que hemos descartado todas las librerías innecesarias.
  12. Se crea el archivo del ejecutable con el contenido del stub. Luego se agrega el código intermedio comprimido del programa. Y por último, en el caso de que hayamos indicado el parámetro --debug, añadimos información de depurado al ejecutable para permitir que funcione el trazador.
<%end%>