UNIDAD 3
333... PPPOOONNNEEERRR AAA PPPUUUNNNTTTOOO EEELLL
PPPRRROOOGGGRRRAAAMMMAAA MMMEEEDDDIIIAAANNNTTTEEE EEELLL UUUSSSOOO
DDDEEE UUUNNN EEEDDDIIITTTOOORRR DDDEEE LLLEEENNNGGGUUUAAAJJJEEE
DDDEEE PPPRRROOOGGGRRRAAAMMMAAACCCIIIÓÓÓNNN
EEESSSTTTRRRUUUCCCTTTUUURRRAAADDDOOO...
3.1 CAPTURA Y EDICIÓN DEL
PROGRAMA.
Fase de compilación y linkado (link, montado o enlace) Un programa
escrito en un lenguaje de alto nivel, no puede ser ejecutado
directamente por un ordenador, sino que debe ser traducido a lenguaje
máquina. Las etapas por las que debe pasar un programa escrito en
un lenguaje de programación, hasta poder ser ejecutable son: Figura
1. Fases de ejecución de un programa fuente: Es el programa escrito
en un lenguaje de alto nivel. No es más que un texto ordinario que
contiene las sentencias (instrucciones) del programa en un
determinado lenguaje de programación. Compilador es el programa
encargado de traducir los programas fuentes escritos en un lenguaje
de alto nivel a lenguaje máquina (traduce nuestras instrucciones a
otras reconocibles por el microprocesador). Programa objeto o código
objeto: Es el programa .obj resultante de la traducción del código
fuente. Aún no es directamente ejecutable por el ordenador. Linker
(montador o enlazador): Es el programa encargado de realizar el
proceso de montaje, que producirá un programa .exe en lenguaje
máquina directamente ejecutable (programa ejecutable). El linkador se
encarga de unir al programa objeto una serie de librerías (archivos de
biblioteca) necesarias para su funcionamiento. Los archivos de
biblioteca son una colección de código que ha sido programada y
traducida, y lista para utilizar en un programa.
Como cada lenguaje de programación tiene unas reglas especiales
(sintaxis) para la construcción de sus programas, debe existir un
compilador específico para cada lenguaje de programación. El
compilador antes de generar el programa objeto debe analizar el
programa fuente (almacenado en un archivo de texto) y comprobar
que cumple las reglas de sintaxis del lenguaje de programación. Si
cumple la sintaxis genera el correspondiente programa objeto, sino,
visualizará un mensaje de error y su posible causa para que
procedamos a la depuración del programa. Depurar un programa
consiste en detectar y corregir los errores que se producen en él, ya
sean en tiempo de compilación o en tiempo de ejecución. Los errores
en tiempo de compilación son los que se producen antes de la
ejecución del programa, durante el proceso de compilación del
programa. Los errores en tiempo de ejecución son los que se
producen durante la ejecución del programa. Este tipo de errores, son
los más difíciles de encontrar, porque no son detectados por el
compilador, ya que no son errores consecuencia de violar alguna regla
sintáctica.
Un programa puede interrumpirse bruscamente, por ejemplo si
tenemos que hacer una división y el divisor es cero, etc. Para
ayudarnos a encontrar los errores lógicos y demás errores producidos
en tiempo de ejecución, podemos hacer uso de los depuradores. Un
depurador (debugger), es un programa diseñado específicamente para
la detección, verificación y corrección de errores, y que por tanto nos
ayudará en las tareas de depuración. Los depuradores nos permiten
trazar el programa (ejecutarlo sentencia a sentencia) y visualizar el
contenido de las variables y direcciones de memoria durante la
ejecución del programa. Además permiten alterar el flujo de ejecución
del mismo, cambiar los valores de las variables e introducir puntos de
parada. Página 3 de 5 Los compiladores emiten mensajes de error o
de advertencia durante las fases de compilación, de enlace o de
ejecución de un programa. Los mensajes de error producidos los
podemos agrupar en tres bloques: − Errores fatales: Son raros.
Algunos indican un error interno del compilador. Cuando ocurren la
compilación se detiene inmediatamente. − Errores de sintaxis: Son los
errores típicos de sintaxis, errores de línea de órdenes y errores de
acceso a memoria o disco. El compilador terminará la fase de
compilación y se detendrá. − Advertencias (warnings): No impiden la
compilación. Indican condiciones que son sospechosas, pero son
legítimas como parte del lenguaje. Así pues los pasos a seguir para la
elaboración y ejecución de un programa los podemos resumir de la
siguiente manera:
1 º. Comenzamos escribiendo el código fuente.
2 º. Compilamos el fichero fuente y se comprueban los mensajes de
error.
3 º. Volvemos al editor y eliminamos los errores de sintaxis.
4 º. Cuando el compilador tiene éxito, el linker construirá el archivo
ejecutable.
5 º. Ya podemos ejecutar el archivo ejecutable que se obtiene al linkar.
6 º. Si encontramos un error, podemos activar el depurador para trazar
el programa y ejecutar sentencia a sentencia.
7 º. Una vez que hayamos encontrado la causa del error, volveremos
al editor y lo corregimos.
8 º. El proceso de compilar, enlazar y ejecutar el programa lo
repetiremos hasta que no se produzcan errores.
9 º. Una vez tengamos el archivo ejecutable, será el sistema operativo
el encargado de colocar el programa en la memoria central y
ejecutarlo .
3.2 COMPILAR EL PROGRAMA,
DEPURAR EL PROGRAMA, EJECUTAR
EL PROGRAMA.
Fase de ejecución de un programa
Una vez que tenemos el programa en lenguaje máquina, para poderlo
ejecutar hay que introducirlo en la memoria. Para esta tarea existe un
programa
del sistema operativo denominado cargador, que introduce el
programa en
posiciones consecutivas de memoria a partir de una determinada.
Cuando el programa está cargado se le indica a la computadora que
pase su
control a la posición de memoria donde se ha cargado. Esta operación
la hace
directamente el sistema operativo.
pasos:
Suponiendo que el programa se ha cargado a partir de una
determinada
posición i de memoria.
1. Lleva de la Memoria (M) a la Unidad de Control (UC) la instrucción
que
está en la posición i. Cambiar el valor de i por i+1.
2. Interpreta el código de operación de la instrucción y, según sea éste
y las
señales de estado, envía señales de control a las unidades y circuitos
que
deben intervenir para ejecutar la instrucción. Vuelve a la fase (1).
ejecución de instrucción.
En el caso de que la ejecución de una instrucción implique saltar a
otra
instrucción en la posición m, por ejemplo (alterándose por tanto el
orden
secuencial), la UC hace, en la fase de ejecución de la instrucción de
salto, que cambie i por m, de forma que en la siguiente fase de
captación se ejecuta la instrucción que está en m.
CINDY PAOLA GONZALEZ MARTINEZ
MELISSA ALESSANDRA VALDEZ MATA
4°C INFORMATICA
MAESTRA: MARGARITA ROMERO

Unidad 3

  • 1.
    UNIDAD 3 333... PPPOOONNNEEERRRAAA PPPUUUNNNTTTOOO EEELLL PPPRRROOOGGGRRRAAAMMMAAA MMMEEEDDDIIIAAANNNTTTEEE EEELLL UUUSSSOOO DDDEEE UUUNNN EEEDDDIIITTTOOORRR DDDEEE LLLEEENNNGGGUUUAAAJJJEEE DDDEEE PPPRRROOOGGGRRRAAAMMMAAACCCIIIÓÓÓNNN EEESSSTTTRRRUUUCCCTTTUUURRRAAADDDOOO... 3.1 CAPTURA Y EDICIÓN DEL PROGRAMA. Fase de compilación y linkado (link, montado o enlace) Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado directamente por un ordenador, sino que debe ser traducido a lenguaje máquina. Las etapas por las que debe pasar un programa escrito en un lenguaje de programación, hasta poder ser ejecutable son: Figura 1. Fases de ejecución de un programa fuente: Es el programa escrito en un lenguaje de alto nivel. No es más que un texto ordinario que contiene las sentencias (instrucciones) del programa en un determinado lenguaje de programación. Compilador es el programa encargado de traducir los programas fuentes escritos en un lenguaje de alto nivel a lenguaje máquina (traduce nuestras instrucciones a otras reconocibles por el microprocesador). Programa objeto o código objeto: Es el programa .obj resultante de la traducción del código fuente. Aún no es directamente ejecutable por el ordenador. Linker (montador o enlazador): Es el programa encargado de realizar el proceso de montaje, que producirá un programa .exe en lenguaje máquina directamente ejecutable (programa ejecutable). El linkador se
  • 2.
    encarga de uniral programa objeto una serie de librerías (archivos de biblioteca) necesarias para su funcionamiento. Los archivos de biblioteca son una colección de código que ha sido programada y traducida, y lista para utilizar en un programa. Como cada lenguaje de programación tiene unas reglas especiales (sintaxis) para la construcción de sus programas, debe existir un compilador específico para cada lenguaje de programación. El compilador antes de generar el programa objeto debe analizar el programa fuente (almacenado en un archivo de texto) y comprobar que cumple las reglas de sintaxis del lenguaje de programación. Si cumple la sintaxis genera el correspondiente programa objeto, sino, visualizará un mensaje de error y su posible causa para que procedamos a la depuración del programa. Depurar un programa consiste en detectar y corregir los errores que se producen en él, ya
  • 3.
    sean en tiempode compilación o en tiempo de ejecución. Los errores en tiempo de compilación son los que se producen antes de la ejecución del programa, durante el proceso de compilación del programa. Los errores en tiempo de ejecución son los que se producen durante la ejecución del programa. Este tipo de errores, son los más difíciles de encontrar, porque no son detectados por el compilador, ya que no son errores consecuencia de violar alguna regla sintáctica. Un programa puede interrumpirse bruscamente, por ejemplo si tenemos que hacer una división y el divisor es cero, etc. Para ayudarnos a encontrar los errores lógicos y demás errores producidos en tiempo de ejecución, podemos hacer uso de los depuradores. Un depurador (debugger), es un programa diseñado específicamente para la detección, verificación y corrección de errores, y que por tanto nos ayudará en las tareas de depuración. Los depuradores nos permiten trazar el programa (ejecutarlo sentencia a sentencia) y visualizar el contenido de las variables y direcciones de memoria durante la ejecución del programa. Además permiten alterar el flujo de ejecución del mismo, cambiar los valores de las variables e introducir puntos de parada. Página 3 de 5 Los compiladores emiten mensajes de error o de advertencia durante las fases de compilación, de enlace o de ejecución de un programa. Los mensajes de error producidos los podemos agrupar en tres bloques: − Errores fatales: Son raros. Algunos indican un error interno del compilador. Cuando ocurren la compilación se detiene inmediatamente. − Errores de sintaxis: Son los errores típicos de sintaxis, errores de línea de órdenes y errores de acceso a memoria o disco. El compilador terminará la fase de compilación y se detendrá. − Advertencias (warnings): No impiden la compilación. Indican condiciones que son sospechosas, pero son legítimas como parte del lenguaje. Así pues los pasos a seguir para la elaboración y ejecución de un programa los podemos resumir de la siguiente manera: 1 º. Comenzamos escribiendo el código fuente.
  • 4.
    2 º. Compilamosel fichero fuente y se comprueban los mensajes de error. 3 º. Volvemos al editor y eliminamos los errores de sintaxis. 4 º. Cuando el compilador tiene éxito, el linker construirá el archivo ejecutable. 5 º. Ya podemos ejecutar el archivo ejecutable que se obtiene al linkar. 6 º. Si encontramos un error, podemos activar el depurador para trazar el programa y ejecutar sentencia a sentencia. 7 º. Una vez que hayamos encontrado la causa del error, volveremos al editor y lo corregimos. 8 º. El proceso de compilar, enlazar y ejecutar el programa lo repetiremos hasta que no se produzcan errores. 9 º. Una vez tengamos el archivo ejecutable, será el sistema operativo el encargado de colocar el programa en la memoria central y ejecutarlo . 3.2 COMPILAR EL PROGRAMA, DEPURAR EL PROGRAMA, EJECUTAR EL PROGRAMA. Fase de ejecución de un programa Una vez que tenemos el programa en lenguaje máquina, para poderlo ejecutar hay que introducirlo en la memoria. Para esta tarea existe un programa del sistema operativo denominado cargador, que introduce el programa en posiciones consecutivas de memoria a partir de una determinada.
  • 5.
    Cuando el programaestá cargado se le indica a la computadora que pase su control a la posición de memoria donde se ha cargado. Esta operación la hace directamente el sistema operativo. pasos: Suponiendo que el programa se ha cargado a partir de una determinada posición i de memoria. 1. Lleva de la Memoria (M) a la Unidad de Control (UC) la instrucción que está en la posición i. Cambiar el valor de i por i+1. 2. Interpreta el código de operación de la instrucción y, según sea éste y las señales de estado, envía señales de control a las unidades y circuitos que deben intervenir para ejecutar la instrucción. Vuelve a la fase (1). ejecución de instrucción. En el caso de que la ejecución de una instrucción implique saltar a otra instrucción en la posición m, por ejemplo (alterándose por tanto el orden secuencial), la UC hace, en la fase de ejecución de la instrucción de salto, que cambie i por m, de forma que en la siguiente fase de captación se ejecuta la instrucción que está en m. CINDY PAOLA GONZALEZ MARTINEZ MELISSA ALESSANDRA VALDEZ MATA 4°C INFORMATICA MAESTRA: MARGARITA ROMERO