COMPILADORES AMPARO CALDERON PEREZ CORPORACION DE ESTUDIOS SUPERIORES DEL ORIENTE SARAVENA 2013 COMPILADORES AMPARO CALDERON PEREZ TRABAJO DIRIGIDO A: ING. Jorge Alberto Patiño CORPORACION DE ESTUDIOS SUPERIORES DEL ORIENTE SARAVENA 2013 EL PROCESO DE COMPILACIÓN PROGRAMACIÓN EN C/EL PROCESO DE COMPILACIÓN Normalmente, a la hora de programar no creamos un único archivo C .c, sino varios de ellos conteniendo diferentes funciones del programa. Esto nos proporciona varias ventajas: una mejor organización del código, una mejor modularidad y, sobre todo, más facilidad (y velocidad) a la hora de compilar. El proceso de compilación que hemos tratado hasta ahora se divide en realidad en dos etapas, que el compilador nos esconde en una: compilación propiamente dicha y enlazado. En la primera etapa, la de compilación, nuestro código en C se transforma en código objeto, es decir, código máquina (instrucciones que el ordenador puede ejecutar) en ficheros .o, mientras que en la segunda etapa (enlazado) estos ficheros objeto son unidos entre sí para formar el fichero ejecutable (normalmente sin extensión en el mundo Unix, o con extensión .com o .exe en el mundo MS-DOS/Windows). Archivo: Compilar.png De esta manera, si no hemos modificado el fichero .c que se compila a un determinado fichero .o podemos ahorrarnos esa parte de la compilación cuando hagamos un cambio en otra parte del programa. Además tenemos los archivos de cabecera .h, que utilizamos para definir parámetros que se utilizan en el código (caso del fuente1.h del ejemplo) o para definir todas las funciones que vamos a utilizar en todos los archivos .c (caso del cabeceras.h), ya que si recordamos, las funciones (como todo en C) deben definirse antes de usarse, y es posible que estén en otro fichero, lo cual nunca es considerado por el compilador como "antes". Hay que tener en cuenta que el fichero en el que se encuentra la función main() llama, necesariamente, a todos los demás ficheros .c, directa o indirectamente, ya que de lo contrario lo que tendríamos en esos ficheros sería perfectamente inútil. Si típicamente compilaríamos el ejemplo con Los pasos del proceso Lo primero que le ocurre a un fichero .c de código C es el pre procesado. En este paso se sustituyen todas las macros y se eliminan los comentarios. El resultado, si lo vemos independientemente, es un fichero de código C pre procesado, o .i. El segundo paso es la compilación propiamente dicha, en el que el código C pre procesado se convierte en código ensamblador, que si lo vemos independientemente es un fichero .s. El tercer paso es el ensamblado del código ensamblador, lo que lo convierte en código máquina. Un fichero de código máquina también es llamado fichero objeto, y su extensión típica es .o. Dado que el camino anterior normalmente convierte un fichero en un fichero, se suele hacer en un sólo paso, de código C a fichero objeto. El último paso es el enlazado de los ficheros objeto en el ejecutable final. [editar]Ejemplos Tomemos el código C más simple posible: int main(void) /*Ejemplo*/ { return(0); } Al pre procesarlo tendremos: # 1 "prueba. c" # 1 "<built-in>" # 1 "<command line>" # 1 "prueba. c" int main(void) { return(0); } EL PROCESO DE COMPILACIÓN EN JAVA Los programas Java no son ejecutables, es decir que no se compilan como los programas en C o C++. En su lugar, son interpretados por una aplicación conocida como la máquina virtual de Java (JVM). Gracias a ello no tienen por qué incluir todo el código y librerías propias de cada sistema. Previamente el código fuente en Java se tiene que pre compilar generando un código (que no es directamente ejecutable) previo conocido como bytecode o J-code. Ese código (generado normalmente en archivos con extensión .class) es el que es ejecutado por la máquina virtual de Java que interpreta las instrucciones de los bytecodes, ejecutando el código de la aplicación. Por esta razón, podemos decir que Java es híbrido, porque es compilado e interpretado a la vez. El bytecode se puede ejecutar en cualquier plataforma, lo único que se requiere es que esa plataforma posea un intérprete adecuado (la máquina virtual específica para esa plataforma). La máquina virtual de Java, además es un programa muy pequeño y que se distribuye gratuitamente para prácticamente todos los sistemas operativos como Windows, Mac OS y Unix/Linux. Si deseamos poder ejecutar aplicaciones Java en nuestra computadora podemos descargar el Java Runtime Enviroment (JRE), en cambio si deseamos también programar y compilar nuestros propios archivos escritos en Java debemos de descargar el Java Developer Kit (JDK). En el JDK viene incluido el JRE. En Java la unidad fundamental del código es la clase. Son las clases las que se distribuyen en el formato bytecode de Java y éstas se cargan dinámicamente durante la ejecución del programa Java. CÓMO: COMPILAR Y EJECUTAR UN PROYECTO EN VISUAL BASIC El entorno de desarrollo integrado (IDE) de Visual Studio facilita la compilación de un proyecto y la ejecución de la aplicación resultante. Puede utilizar el depurador integrado en el IDE para depurar su proyecto mientras lo ejecuta. Para obtener más información sobre la depuración, vea Depurar la aplicación de Visual Basic y Editar y continuar (Visual Basic). Nota Los cuadros de diálogo y los comandos de menú que se ven pueden diferir de los descritos en la Ayuda, dependiendo de los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio. Para compilar y ejecutar el proyecto actual Presione F5 mientras está en el entorno de desarrollo integrado (IDE) de Visual Studio. El IDE compila el proyecto y ejecuta la aplicación dentro del depurador de Visual Studio. Para compilar y ejecutar el proyecto actual desde el menú En el menú Depurar del IDE de Visual Studio, elija Iniciar depuración. El IDE compila el proyecto y ejecuta la aplicación dentro del depurador de Visual Studio. Para compilar y ejecutar el proyecto actual sin depurar Presione CTRL+F5 en el IDE de Visual Studio. El IDE compila el proyecto y ejecuta la aplicación