SlideShare une entreprise Scribd logo
1  sur  8
Poner a punto el programa
mediante el uso de un editor de
lenguaje de programación
estructurado.
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.
3.3 El compilador de C. Características generales.
♦ El lenguaje C es un lenguaje de nivel medio: combina elementos de lenguajes de alto nivel con
la funcionalidad del lenguaje ensamblador. Como lenguaje de nivel medio, permite la
manipulación de bits, bytes y direcciones. Es particularmente adecuado para la programación
de sistemas.
♦ El código de C es muy portable: se puede adaptar el software escrito para un tipo de
computadora a otra computadora sin hacer muchos cambios.
♦ El lenguaje C es un lenguaje estructurado: permite seccionar y esconder (mediante subrutinas
y variables locales) del resto del programa toda la información e instrucciones necesarias para
realizar una determinada tarea. − Soporta construcciones de bucles (while, do-while y for) e
instrucciones condicionales (if, switch) − Permite sangrar las sentencias. − Permite crear funciones
(subrutinas independientes). Las funciones son los bloques en los que se desarrolla toda la
actividad de los programas. Son los que permiten definir las tareas de un programa y codificarlas
por separado, permitiendo así que los programas sean modulares. − Permiten crear bloques de
códigos. Un bloque de código es un grupo de sentencias de un programa conectadas de forma
ló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 el
lenguaje 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 programa
línea a línea y traduce las instrucciones específicas contenidas en esa línea para que el
microprocesador 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 un
programa en un código que es directamente ejecutable y entendible por el microprocesador.

Contenu connexe

Tendances (17)

Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gadd
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 

En vedette

Patrística 2011
Patrística 2011Patrística 2011
Patrística 2011untecs
 
# 2 aspectos a considerar en el desarrollo del estudio
# 2 aspectos a considerar en el desarrollo del estudio# 2 aspectos a considerar en el desarrollo del estudio
# 2 aspectos a considerar en el desarrollo del estudioYazmin Garcia
 
experiencia significativa
experiencia significativaexperiencia significativa
experiencia significativalichedoncella
 
Estudio de caso_la_gran_inundacion_de_1629[1]
Estudio de caso_la_gran_inundacion_de_1629[1]Estudio de caso_la_gran_inundacion_de_1629[1]
Estudio de caso_la_gran_inundacion_de_1629[1]bpumaloco
 
Id1946652977 t&f14m internet
Id1946652977 t&f14m internetId1946652977 t&f14m internet
Id1946652977 t&f14m internetagssports.com
 
La educación del siglo xxi una puerta de entrada e inclusión a la sociedad de...
La educación del siglo xxi una puerta de entrada e inclusión a la sociedad de...La educación del siglo xxi una puerta de entrada e inclusión a la sociedad de...
La educación del siglo xxi una puerta de entrada e inclusión a la sociedad de...Daniel Romero
 
Texto narrativo
Texto narrativoTexto narrativo
Texto narrativountecs
 
Streaming Informatica
Streaming InformaticaStreaming Informatica
Streaming Informaticamsanchez2000
 
Presentacion Ever VR
Presentacion Ever VRPresentacion Ever VR
Presentacion Ever VREver Vargas R
 

En vedette (20)

Presentación10 2 t
Presentación10 2 tPresentación10 2 t
Presentación10 2 t
 
Karen judaismo
Karen judaismoKaren judaismo
Karen judaismo
 
Proyecto de intervención familiar LIE
Proyecto de intervención familiar LIEProyecto de intervención familiar LIE
Proyecto de intervención familiar LIE
 
Archivos
ArchivosArchivos
Archivos
 
Patrística 2011
Patrística 2011Patrística 2011
Patrística 2011
 
# 2 aspectos a considerar en el desarrollo del estudio
# 2 aspectos a considerar en el desarrollo del estudio# 2 aspectos a considerar en el desarrollo del estudio
# 2 aspectos a considerar en el desarrollo del estudio
 
Tarbajo en equipo
Tarbajo en equipoTarbajo en equipo
Tarbajo en equipo
 
experiencia significativa
experiencia significativaexperiencia significativa
experiencia significativa
 
Estudio de caso_la_gran_inundacion_de_1629[1]
Estudio de caso_la_gran_inundacion_de_1629[1]Estudio de caso_la_gran_inundacion_de_1629[1]
Estudio de caso_la_gran_inundacion_de_1629[1]
 
Id1946652977 t&f14m internet
Id1946652977 t&f14m internetId1946652977 t&f14m internet
Id1946652977 t&f14m internet
 
La educación del siglo xxi una puerta de entrada e inclusión a la sociedad de...
La educación del siglo xxi una puerta de entrada e inclusión a la sociedad de...La educación del siglo xxi una puerta de entrada e inclusión a la sociedad de...
La educación del siglo xxi una puerta de entrada e inclusión a la sociedad de...
 
Texto narrativo
Texto narrativoTexto narrativo
Texto narrativo
 
Streaming Informatica
Streaming InformaticaStreaming Informatica
Streaming Informatica
 
H. Habilis
H. HabilisH. Habilis
H. Habilis
 
Estudio juventud tabaquismo_17_nov
Estudio juventud tabaquismo_17_novEstudio juventud tabaquismo_17_nov
Estudio juventud tabaquismo_17_nov
 
Tics
TicsTics
Tics
 
Once fotos historicas
Once fotos historicasOnce fotos historicas
Once fotos historicas
 
Plantilla inicial
Plantilla inicialPlantilla inicial
Plantilla inicial
 
Presentacion Ever VR
Presentacion Ever VRPresentacion Ever VR
Presentacion Ever VR
 
EVOLUCIÓN Y CONTROL DE LA VISIÓN
EVOLUCIÓN Y CONTROL DE LA VISIÓNEVOLUCIÓN Y CONTROL DE LA VISIÓN
EVOLUCIÓN Y CONTROL DE LA VISIÓN
 

Similaire à 3. poner a punto el programa mediante el uso de un editor de lenguaje de programación estructurado.

Similaire à 3. poner a punto el programa mediante el uso de un editor de lenguaje de programación estructurado. (20)

Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- Programación
 
Tema referente a ing. sistemas
Tema referente a ing. sistemasTema referente a ing. sistemas
Tema referente a ing. sistemas
 
Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretes
 
Introduccion a la programación
Introduccion a la programaciónIntroduccion a la programación
Introduccion a la programación
 
Programacion
ProgramacionProgramacion
Programacion
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Programación
ProgramaciónProgramación
Programación
 
Innovacionk m
Innovacionk mInnovacionk m
Innovacionk m
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 

Plus de carolina peña

2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...carolina peña
 
2. codificar la solución del problema en un lenguaje de programación estructu...
2. codificar la solución del problema en un lenguaje de programación estructu...2. codificar la solución del problema en un lenguaje de programación estructu...
2. codificar la solución del problema en un lenguaje de programación estructu...carolina peña
 
1.6 prueba de escritorio de la solución del problema.
1.6 prueba de escritorio de la solución del problema.1.6 prueba de escritorio de la solución del problema.
1.6 prueba de escritorio de la solución del problema.carolina peña
 
1.5 crear pseudocódigos de la solución del problema.
1.5 crear pseudocódigos de la solución del problema.1.5 crear pseudocódigos de la solución del problema.
1.5 crear pseudocódigos de la solución del problema.carolina peña
 
1.4 elaborar diagramas de flujo de la solución del problema.
1.4 elaborar diagramas de flujo de la solución del problema.1.4 elaborar diagramas de flujo de la solución del problema.
1.4 elaborar diagramas de flujo de la solución del problema.carolina peña
 
1.3 elaborar algoritmos de la solución de un problema.
1.3 elaborar algoritmos de la solución de un problema.1.3 elaborar algoritmos de la solución de un problema.
1.3 elaborar algoritmos de la solución de un problema.carolina peña
 
1.2 analizar el problema.
1.2 analizar el problema.1.2 analizar el problema.
1.2 analizar el problema.carolina peña
 
1.1 identificar los problemas de programación
1.1 identificar los problemas de programación1.1 identificar los problemas de programación
1.1 identificar los problemas de programacióncarolina peña
 
1 . la resolución de problemas con computadoras y las herramientas de program...
1 . la resolución de problemas con computadoras y las herramientas de program...1 . la resolución de problemas con computadoras y las herramientas de program...
1 . la resolución de problemas con computadoras y las herramientas de program...carolina peña
 
Practica27 gaem-121119155257-phpapp02
Practica27 gaem-121119155257-phpapp02Practica27 gaem-121119155257-phpapp02
Practica27 gaem-121119155257-phpapp02carolina peña
 
Practica26 121109165959-phpapp02
Practica26 121109165959-phpapp02Practica26 121109165959-phpapp02
Practica26 121109165959-phpapp02carolina peña
 
Cuesstionario unidad 4
Cuesstionario unidad 4Cuesstionario unidad 4
Cuesstionario unidad 4carolina peña
 

Plus de carolina peña (20)

2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
2.1 elemento básicos del lenguaje de programación estructurado manipulación b...
 
2. codificar la solución del problema en un lenguaje de programación estructu...
2. codificar la solución del problema en un lenguaje de programación estructu...2. codificar la solución del problema en un lenguaje de programación estructu...
2. codificar la solución del problema en un lenguaje de programación estructu...
 
1.6 prueba de escritorio de la solución del problema.
1.6 prueba de escritorio de la solución del problema.1.6 prueba de escritorio de la solución del problema.
1.6 prueba de escritorio de la solución del problema.
 
1.5 crear pseudocódigos de la solución del problema.
1.5 crear pseudocódigos de la solución del problema.1.5 crear pseudocódigos de la solución del problema.
1.5 crear pseudocódigos de la solución del problema.
 
1.4 elaborar diagramas de flujo de la solución del problema.
1.4 elaborar diagramas de flujo de la solución del problema.1.4 elaborar diagramas de flujo de la solución del problema.
1.4 elaborar diagramas de flujo de la solución del problema.
 
1.3 elaborar algoritmos de la solución de un problema.
1.3 elaborar algoritmos de la solución de un problema.1.3 elaborar algoritmos de la solución de un problema.
1.3 elaborar algoritmos de la solución de un problema.
 
1.2 analizar el problema.
1.2 analizar el problema.1.2 analizar el problema.
1.2 analizar el problema.
 
1.1 identificar los problemas de programación
1.1 identificar los problemas de programación1.1 identificar los problemas de programación
1.1 identificar los problemas de programación
 
1 . la resolución de problemas con computadoras y las herramientas de program...
1 . la resolución de problemas con computadoras y las herramientas de program...1 . la resolución de problemas con computadoras y las herramientas de program...
1 . la resolución de problemas con computadoras y las herramientas de program...
 
Practica30
Practica30Practica30
Practica30
 
Practica29
Practica29 Practica29
Practica29
 
Practica27 gaem-121119155257-phpapp02
Practica27 gaem-121119155257-phpapp02Practica27 gaem-121119155257-phpapp02
Practica27 gaem-121119155257-phpapp02
 
Práctica 28
Práctica 28Práctica 28
Práctica 28
 
Practica26 121109165959-phpapp02
Practica26 121109165959-phpapp02Practica26 121109165959-phpapp02
Practica26 121109165959-phpapp02
 
Unidad6
Unidad6 Unidad6
Unidad6
 
Practica 25
Practica 25Practica 25
Practica 25
 
Practica 21 gaem
Practica 21 gaemPractica 21 gaem
Practica 21 gaem
 
Cuesstionario unidad 4
Cuesstionario unidad 4Cuesstionario unidad 4
Cuesstionario unidad 4
 
Practica 20
Practica 20 Practica 20
Practica 20
 
Practica19
Practica19 Practica19
Practica19
 

3. poner a punto el programa mediante el uso de un editor de lenguaje de programación estructurado.

  • 1. Poner a punto el programa mediante el uso de un editor de lenguaje de programación estructurado.
  • 2. 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.
  • 3.
  • 4. 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.
  • 5. 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:
  • 6. 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
  • 7. 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.
  • 8. 3.3 El compilador de C. Características generales. ♦ El lenguaje C es un lenguaje de nivel medio: combina elementos de lenguajes de alto nivel con la funcionalidad del lenguaje ensamblador. Como lenguaje de nivel medio, permite la manipulación de bits, bytes y direcciones. Es particularmente adecuado para la programación de sistemas. ♦ El código de C es muy portable: se puede adaptar el software escrito para un tipo de computadora a otra computadora sin hacer muchos cambios. ♦ El lenguaje C es un lenguaje estructurado: permite seccionar y esconder (mediante subrutinas y variables locales) del resto del programa toda la información e instrucciones necesarias para realizar una determinada tarea. − Soporta construcciones de bucles (while, do-while y for) e instrucciones condicionales (if, switch) − Permite sangrar las sentencias. − Permite crear funciones (subrutinas independientes). Las funciones son los bloques en los que se desarrolla toda la actividad de los programas. Son los que permiten definir las tareas de un programa y codificarlas por separado, permitiendo así que los programas sean modulares. − Permiten crear bloques de códigos. Un bloque de código es un grupo de sentencias de un programa conectadas de forma ló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 el lenguaje 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 programa línea a línea y traduce las instrucciones específicas contenidas en esa línea para que el microprocesador 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 un programa en un código que es directamente ejecutable y entendible por el microprocesador.