1. 3.- Poner a punto el programa
mediante el uso de un editor
de lenguaje de programación
estructurado.
2. 2. 3.1. Captura y edición del programa
Fase de compilación y linkado (link, montado o enlace) Un programa escritoen un
lenguaje de alto nivel, no puede ser ejecutado directamente por unordenador, sino
que debe ser traducido a lenguaje máquina. Las etapas porlas 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 programafuente: Es el programa escrito en un
lenguaje de alto nivel. No es más que untexto ordinario que contiene las sentencias
(instrucciones) del programa enun determinado lenguaje de programación.
Compilador es el programaencargado de traducir los programas fuentes escritos en
un lenguaje de altonivel a lenguaje máquina (traduce nuestras instrucciones a otras
reconociblespor 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
directamenteejecutable por el ordenador. Linker (montador o enlazador): Es el
programaencargado 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
debiblioteca son una colección de código que ha sido programada ytraducida, y
lista para utilizar en un programa.
3. 2. 3.1. Captura y
edición del programa
• Como cada lenguaje de programación tiene unas reglasespeciales
(sintaxis) para la construcción de sus programas,debe existir un
compilador específico para cada lenguaje deprogramación. El
compilador antes de generar el programaobjeto debe analizar el
programa fuente (almacenado en unarchivo de texto) y comprobar
que cumple las reglas desintaxis del lenguaje de programación. Si
cumple la sintaxisgenera el correspondiente programa
objeto, sino, visualizará unmensaje de error y su posible causa para
que procedamos a ladepuración del programa. Depurar un programa
consiste endetectar y corregir los errores que se producen en él, ya
seanen tiempo de compilación o en tiempo de ejecución. Loserrores
en tiempo de compilación son los que se producenantes de la
ejecución del programa, durante el proceso decompilación del
programa. Los errores en tiempo de ejecuciónson los que se producen
durante la ejecución del programa.Este tipo de errores, son los más
difíciles de encontrar, porqueno son detectados por el compilador, ya
que no son erroresconsecuencia de violar alguna regla sintáctica.
4. 2. 3.1. Captura y edición
del programa
• Un programa puede interrumpirse bruscamente, por ejemplo sitenemos que hacer
una división y el divisor es cero, etc. Paraayudarnos a encontrar los errores
lógicos y demás erroresproducidos en tiempo de ejecución, podemos hacer uso de
losdepuradores. Un depurador (debugger), es un programa
diseñadoespecíficamente para la detección, verificación y corrección deerrores, y
que por tanto nos ayudará en las tareas de depuración.Los depuradores nos
permiten trazar el programa (ejecutarlosentencia a sentencia) y visualizar el
contenido de las variables ydirecciones de memoria durante la ejecución del
programa.Además permiten alterar el flujo de ejecución del mismo, cambiarlos
valores de las variables e introducir puntos de parada. Página 3de 5 Los
compiladores emiten mensajes de error o de advertenciadurante las fases de
compilación, de enlace o de ejecución de unprograma. Los mensajes de error
producidos los podemos agruparen tres bloques: − Errores fatales: Son raros.
Algunos indican un errorinterno del compilador. Cuando ocurren la compilación
se detieneinmediatamente. − Errores de sintaxis: Son los errores típicos
desintaxis, errores de línea de órdenes y errores de acceso a memoriao disco. El
compilador terminará la fase de compilación y sedetendrá. − Advertencias
(warnings): No impiden la compilación.Indican condiciones que son
sospechosas, pero son legítimas comoparte del lenguaje. Así pues los pasos a
seguir para la elaboración yejecución de un programa los podemos resumir de la
siguientemanera:
5. 2. 3.1. Captura y
edición del programa
• Comenzamos escribiendo el código fuente.2 º. Compilamos el
fichero fuente y se comprueban los mensajesde error.3 º.
Volvemos al editor y eliminamos los errores de sintaxis.4 º.
Cuando el compilador tiene éxito, el linker construirá el
archivoejecutable.5 º. Ya podemos ejecutar el archivo
ejecutable que se obtiene allinkar.6 º. Si encontramos un error,
podemos activar el depurador paratrazar 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
lorepetiremos hasta que no se produzcan errores.9 º. Una vez
tengamos el archivo ejecutable, será el sistemaoperativo el
encargado de colocar el programa en la memoriacentral y
ejecutarlo
6. 3.2. Compilar el programa Depurar el
programa Ejecutar el programa
• Compilar el programa Depurarel programa Ejecutar el programaFase de
ejecución de un programaUna vez que tenemos el programa en lenguaje
máquina, para poderloejecutar hay que introducirlo en la memoria. Para esta tarea
existe un programadel sistema operativo denominado cargador, que introduce el
programa enposiciones consecutivas de memoria a partir de una
determinada.Cuando el programa está cargado se le indica a la computadora que
pase sucontrol 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 determinadaposición i de memoria.1. Lleva de la Memoria
(M) a la Unidad de Control (UC) la instrucción queestá 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 lasseñales de estado, envía señales de control a las unidades y circuitos
quedeben 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
otrainstrucción en la posición m, por ejemplo (alterándose por tanto el
ordensecuencial), 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 ejecútala instrucción que está en m.
7. el programa
• El lenguaje C es un lenguaje estructurado: permite seccionar y esconder (mediante
subrutinasy variables locales) del resto del programa toda la información e instrucciones
necesarias pararealizar una determinada tarea. − Soporta construcciones de bucles (while,
do-while y for) einstrucciones condicionales (if, switch) − Permite sangrar las sentencias. −
Permite crear funciones(subrutinas independientes). Las funciones son los bloques en los
que se desarrolla toda laactividad de los programas. Son los que permiten definir las tareas
de un programa y codificarlaspor separado, permitiendo así que los programas sean
modulares. − Permiten crear bloques decódigos. Un bloque de código es un grupo de
sentencias de un programa conectadas de formalógica que es tratado como una unidad. Se
crean colocando una serie de sentencia entre llaves.♦ El lenguaje C sólo tiene 32 palabras
clave, que constituyen las órdenes que conforman ellenguaje C (el BASIC por ejemplo
contiene 159 palabras clave).♦ El lenguaje C es compilado, no interpretado. Un intérprete lee
el código fuente de un programalínea a línea y traduce las instrucciones específicas
contenidas en esa línea para que elmicroprocesador las pueda interpretar, pero no genera
ningún programa objeto. Un compilador,en cambio lee el programa entero y lo convierte en
código objeto, de manera que genera unprograma en un código que es directamente
ejecutable y entendible por el microprocesador.