SlideShare una empresa de Scribd logo
1 de 8
TERCERA UNIDAD
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
3.2. Compilar el programa Depurar el programa Ejecutar el programa
 3.1 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 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 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
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.

Más contenido relacionado

La actualidad más candente (20)

Jhonny3
Jhonny3Jhonny3
Jhonny3
 
Fanny3
Fanny3Fanny3
Fanny3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad ad 3
Unidad ad 3Unidad ad 3
Unidad ad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
C:\fakepath\compiladores
C:\fakepath\compiladoresC:\fakepath\compiladores
C:\fakepath\compiladores
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
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
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 

Destacado

Relieve de la costas[1]
Relieve de la costas[1]Relieve de la costas[1]
Relieve de la costas[1]Campoamor5s
 
Campeonato de liga_64-65
Campeonato de liga_64-65Campeonato de liga_64-65
Campeonato de liga_64-65gallardo8
 
Mejores prácticas y actividades en Vigilancia y Control
Mejores prácticas y actividades en Vigilancia y ControlMejores prácticas y actividades en Vigilancia y Control
Mejores prácticas y actividades en Vigilancia y ControlMinisterio TIC Colombia
 
Eficiencia Energética: Una oportunidad para los Municipios
Eficiencia Energética: Una oportunidad para los MunicipiosEficiencia Energética: Una oportunidad para los Municipios
Eficiencia Energética: Una oportunidad para los MunicipiosEficiencia Energética
 
Sanchez chuquisala luis galo (recuperado)
Sanchez  chuquisala  luis  galo (recuperado)Sanchez  chuquisala  luis  galo (recuperado)
Sanchez chuquisala luis galo (recuperado)Sandy Rezabala
 
Chistes cortos
Chistes cortosChistes cortos
Chistes cortosgallardo8
 
Las redes sociales.radpr.wordpess.com
Las redes sociales.radpr.wordpess.comLas redes sociales.radpr.wordpess.com
Las redes sociales.radpr.wordpess.comradpr2011
 
Los mejores carros del mundo
Los mejores carros del mundoLos mejores carros del mundo
Los mejores carros del mundoahtrabajosa
 
Lactancia materna
Lactancia maternaLactancia materna
Lactancia maternaYefer Diaz
 
Riesgo en el Schedule del Proyecto
Riesgo en el Schedule del ProyectoRiesgo en el Schedule del Proyecto
Riesgo en el Schedule del ProyectoDharma Consulting
 
E S P AÑ A P A I S D E M I L L O N A R I O S
E S P AÑ A  P A I S  D E  M I L L O N A R I O SE S P AÑ A  P A I S  D E  M I L L O N A R I O S
E S P AÑ A P A I S D E M I L L O N A R I O SJaume Barberà
 

Destacado (20)

La lectura de angelina
La lectura de angelinaLa lectura de angelina
La lectura de angelina
 
Relieve de la costas[1]
Relieve de la costas[1]Relieve de la costas[1]
Relieve de la costas[1]
 
Monica informe 7
Monica informe 7Monica informe 7
Monica informe 7
 
Tics
TicsTics
Tics
 
Sesqui
SesquiSesqui
Sesqui
 
Campeonato de liga_64-65
Campeonato de liga_64-65Campeonato de liga_64-65
Campeonato de liga_64-65
 
Mejores prácticas y actividades en Vigilancia y Control
Mejores prácticas y actividades en Vigilancia y ControlMejores prácticas y actividades en Vigilancia y Control
Mejores prácticas y actividades en Vigilancia y Control
 
Eficiencia Energética: Una oportunidad para los Municipios
Eficiencia Energética: Una oportunidad para los MunicipiosEficiencia Energética: Una oportunidad para los Municipios
Eficiencia Energética: Una oportunidad para los Municipios
 
Sanchez chuquisala luis galo (recuperado)
Sanchez  chuquisala  luis  galo (recuperado)Sanchez  chuquisala  luis  galo (recuperado)
Sanchez chuquisala luis galo (recuperado)
 
Chistes cortos
Chistes cortosChistes cortos
Chistes cortos
 
Bloque3
Bloque3Bloque3
Bloque3
 
Book dani!
Book dani!Book dani!
Book dani!
 
Las redes sociales.radpr.wordpess.com
Las redes sociales.radpr.wordpess.comLas redes sociales.radpr.wordpess.com
Las redes sociales.radpr.wordpess.com
 
Los mejores carros del mundo
Los mejores carros del mundoLos mejores carros del mundo
Los mejores carros del mundo
 
Lactancia materna
Lactancia maternaLactancia materna
Lactancia materna
 
Riesgo en el Schedule del Proyecto
Riesgo en el Schedule del ProyectoRiesgo en el Schedule del Proyecto
Riesgo en el Schedule del Proyecto
 
presentación otoñal
presentación otoñalpresentación otoñal
presentación otoñal
 
modelos atomicos
modelos atomicosmodelos atomicos
modelos atomicos
 
Practica 5
Practica 5Practica 5
Practica 5
 
E S P AÑ A P A I S D E M I L L O N A R I O S
E S P AÑ A  P A I S  D E  M I L L O N A R I O SE S P AÑ A  P A I S  D E  M I L L O N A R I O S
E S P AÑ A P A I S D E M I L L O N A R I O S
 

Similar a Tercera unidad

Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Victor Martinez
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador ADOLFOISAIASGARCIASI
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- ProgramaciónYenny Salazar
 
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_interpretesMichael Vreys
 
Tema referente a ing. sistemas
Tema referente a ing. sistemasTema referente a ing. sistemas
Tema referente a ing. sistemasFrank Muñante
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)still01
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1hoppii
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1hoppii
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentaciondodi1997
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionlupitagarcia07
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicosdiana8320
 
Unidad 3
Unidad 3Unidad 3
Unidad 3aeto
 

Similar a Tercera unidad (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
 
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
 
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
 
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
 
Tema referente a ing. sistemas
Tema referente a ing. sistemasTema referente a ing. sistemas
Tema referente a ing. sistemas
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
 
Programacion
ProgramacionProgramacion
Programacion
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicos
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 

Más de yunuel Ortiz Zúñiga (20)

Piensa, aliméntate, ahorra, una
Piensa, aliméntate, ahorra, unaPiensa, aliméntate, ahorra, una
Piensa, aliméntate, ahorra, una
 
Unidad dos
Unidad dosUnidad dos
Unidad dos
 
Primera unidad
Primera unidadPrimera unidad
Primera unidad
 
Pract ica 30
Pract ica  30Pract ica  30
Pract ica 30
 
Práctica #29
Práctica #29Práctica #29
Práctica #29
 
Práctica 28
Práctica 28Práctica 28
Práctica 28
 
Práctica 27
Práctica 27Práctica 27
Práctica 27
 
Práctica 26
Práctica 26Práctica 26
Práctica 26
 
Practica 25
Practica 25Practica 25
Practica 25
 
Unidad 6♥
Unidad 6♥Unidad 6♥
Unidad 6♥
 
Practica 24
Practica 24Practica 24
Practica 24
 
Practica 23
Practica 23Practica 23
Practica 23
 
Practica 22
Practica 22Practica 22
Practica 22
 
Sopa de letras
Sopa de letrasSopa de letras
Sopa de letras
 
pràctica # 22 Laura Ojeda y Aylìn Ortiz
pràctica # 22 Laura Ojeda y Aylìn Ortizpràctica # 22 Laura Ojeda y Aylìn Ortiz
pràctica # 22 Laura Ojeda y Aylìn Ortiz
 
Práctica 21♥ Yunuel Ortiz
Práctica 21♥ Yunuel OrtizPráctica 21♥ Yunuel Ortiz
Práctica 21♥ Yunuel Ortiz
 
Práctica 20
Práctica 20Práctica 20
Práctica 20
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Práctica 15☺
Práctica 15☺Práctica 15☺
Práctica 15☺
 
Programaa
ProgramaaProgramaa
Programaa
 

Tercera unidad

  • 1. TERCERA UNIDAD 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 3.2. Compilar el programa Depurar el programa Ejecutar el programa  3.1 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 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: 1 º. Comenzamos escribiendo el código fuente. 2 º. Compilamos el fichero fuente y se comprueban los mensajes de error.
  • 6. 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 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
  • 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.