SlideShare una empresa de Scribd logo
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.
 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:
 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
 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.
 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.

Más contenido relacionado

La actualidad más candente

Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Maryfer' Ortega
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
Pedro Antonio Villalta (Pavillalta)
 
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
Guillermo Iván Prisco Pérez
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
zamanthag_una
 
Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gadd
Gustavo Davila
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
Conceptossobreedicionyobtenciondecodigoejecutable
ConceptossobreedicionyobtenciondecodigoejecutableConceptossobreedicionyobtenciondecodigoejecutable
Conceptossobreedicionyobtenciondecodigoejecutable
Colegio Metropolitano
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadoresperlallamas
 
Lolo
LoloLolo
Lolo
Maus Mb
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
Rolandovonchong
 

La actualidad más candente (20)

Tercera unidad ;3
Tercera unidad ;3Tercera unidad ;3
Tercera unidad ;3
 
Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
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
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
 
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
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Tasm
TasmTasm
Tasm
 
Conceptossobreedicionyobtenciondecodigoejecutable
ConceptossobreedicionyobtenciondecodigoejecutableConceptossobreedicionyobtenciondecodigoejecutable
Conceptossobreedicionyobtenciondecodigoejecutable
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
 
Lolo
LoloLolo
Lolo
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 

Similar a 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
ADOLFOISAIASGARCIASI
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Lesly Gonzalez
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)still01
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- Programación
Yenny 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_interpretes
Michael Vreys
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Victor Martinez
 
Actividad N° 1 Unidad 4
Actividad N° 1   Unidad 4 Actividad N° 1   Unidad 4
Actividad N° 1 Unidad 4
Pablo Agustin Novillo Audicio
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Jahir Sanchez Sdval
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1
hoppii
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1hoppii
 

Similar a Unidad 3 (20)

Unidad 3
Unidad 3Unidad 3
Unidad 3
 
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
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- Programación
 
UNIDAD 3
UNIDAD 3 UNIDAD 3
UNIDAD 3
 
Compiladores iswi (parte 2)
Compiladores iswi (parte 2)Compiladores iswi (parte 2)
Compiladores iswi (parte 2)
 
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
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01
 
Informatik
InformatikInformatik
Informatik
 
Actividad N° 1 Unidad 4
Actividad N° 1   Unidad 4 Actividad N° 1   Unidad 4
Actividad N° 1 Unidad 4
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 

Más de Yackii AlpiiRez (20)

Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 7 yackii
Unidad 7 yackiiUnidad 7 yackii
Unidad 7 yackii
 
Practica 30 (1)
Practica 30 (1)Practica 30 (1)
Practica 30 (1)
 
Práctica #29
Práctica #29Práctica #29
Práctica #29
 
Practica 28
Practica 28Practica 28
Practica 28
 
Practica 27
Practica 27Practica 27
Practica 27
 
Practica 25
Practica 25Practica 25
Practica 25
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Practica 15
Practica 15Practica 15
Practica 15
 
4.2docx
4.2docx4.2docx
4.2docx
 
Practica 16
Practica 16Practica 16
Practica 16
 
Practica 14
Practica 14Practica 14
Practica 14
 
UNIDAD 4
UNIDAD 4UNIDAD 4
UNIDAD 4
 
Inidad4
Inidad4Inidad4
Inidad4
 
Practica 13 yqacki-
Practica 13 yqacki-Practica 13 yqacki-
Practica 13 yqacki-
 
Practica 12 ywck - copia
Practica 12 ywck - copiaPractica 12 ywck - copia
Practica 12 ywck - copia
 
Practica 11
Practica 11Practica 11
Practica 11
 
Practica 10 yacki
Practica 10 yackiPractica 10 yacki
Practica 10 yacki
 

Unidad 3

  • 1.
  • 2. 2. 3.1. Captura y edición del programa
  • 3.  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.  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.  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.  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 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.