SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Ingeniería Técnica Industrial
                                                                   Fundamentos de Informática


                         Tema 3. El proceso de compilación, del código fuente al código máquina



TEMA 3. EL PROCESO DE COMPILACIÓN,
            DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA


    Programa: Algoritmo (secuencia no ambigua, finita y ordenada de
instrucciones para la resolución de un determinado problema) traducido a un
lenguaje de programación, de modo que un ordenador es capaz de ejecutarlo.
   Programación: Elaboración de un programa de manera que éste sea:

     − Correcto    Un programa será correcto si hace lo que debe hacer, de
       modo que se deben especificar de manera muy clara cuáles son los
       datos sobre los que se trabajarán y lo que se debe hacer con ellos.
       Todo debe ser documentado y probado antes de desarrollarlo.

     − Eficiente  Debe consumir la menor cantidad de recursos (tiempo y/o
       memoria) posible.

     − Claro     Es muy importante la claridad y legibilidad de todo programa,
       ya que facilitará al máximo la tarea de mantenimiento posterior del
       software.

     − Modular     Los programas suelen subdividirse en subprogramas
       (módulos), para reducir la complejidad de aquella parte que se está
       implementando y facilitar la reutilización de código.


   Para la elaboración de un programa hay que distinguir entre las siguientes
dos fases:
     − Fase de compilación y linkado (link, montado o enlace)

     − Fase de ejecución de un programa




                                                                                 Página 1 de 5
Ingeniería Técnica Industrial
                                                                                                                                       Fundamentos de Informática


                                            Tema 3. El proceso de compilación, del código fuente al código máquina



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:
                                                                                                                       Programa fuente: Programa escrito
                                                                                                                     en un lenguaje de alto nivel (texto
                   Programa Fuente                                                                                   ordinario que contiene las sentencias del
                        (nombre.c)
                                                       DEPURACIÓN del programa si se producen errores en ejecución
                                                                                                                     programa     en     un    lenguaje    de
                                                                                                                     programación). Necesita ser traducido a
       Con
        errores                                                                                                      código máquina para poder ser
                    COMPILADOR                                                                                       ejecutado.
                                                                                                                       Compilador: Programa encargado
                              Sin errores




                                                                                                                     de traducir los programas fuentes
                                                                                                                     escritos en un lenguaje de alto nivel a
 Librerías         Programa Objeto                                                                                   lenguaje máquina y de comprobar que
                        (nombre.o)
                                                                                                                     las llamadas a las funciones de
                                                                                                                     librería se realizan correctamente.
                     ENLAZADOR                                                                                         Programa (o código) objeto: Es el
                                                                                                                     programa fuente traducido (por el
                            Sin errores




                                                                                                                     compilador) a código máquina. Aún no
                                                                                                                     es directamente ejecutable.
                  Programa ejecutable
                        (nombre.exe)                                                                                   Programa Ejecutable: Traducción
                                                                                                                     completa a código máquina, realizada
Figura 1. Proceso de transformación de un programa fuente a
                  un programa ejecutable
                                                                                                                     por el enlazador, del programa fuente
                                                                                                                     y que ya es directamente ejecutable.
      Linker (montador o enlazador): Es el programa encargado de insertar al
programa objeto el código máquina de las funciones de las librerías (archivos
de biblioteca) usadas en el programa y realizar el proceso de montaje, que
producirá un programa ejecutable .exe. Las librerias son una colección de
código (funciones) ya programado y traducido a código máquina, listo para
utilizar en un programa y que facilita la labor del programador.


                                                                                                                                                     Página 2 de 5
Ingeniería Técnica Industrial
                                                                    Fundamentos de Informática


                          Tema 3. El proceso de compilación, del código fuente al código máquina


   Como cada lenguaje de programación tiene unas reglas especiales (sintaxis)
debe existir un compilador específico para cada lenguaje de programación.
   Si el programa fuente es sintácticamente correcto, el compilador generará el
código objeto, en caso contrario mostrará una lista con los errores encontrados,
no generándose ningún programa objeto, para que procedamos a su depuración
    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 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. Son los más difíciles de encontrar, no son
     detectados por el compilador, ya que son errores de lógica, no de sintaxis.
    Aunque al compilar un programa no de errores, el programa puede funcionar
incorrectamente y/o a dar errores durante su ejecución. Por ejemplo:
   • Un programa puede producir resultados erróneos, al equivocarnos
     (errores lógicos) al programar el algoritmo (sumar en vez de restar, etc.).
   • Un programa puede interrumpirse bruscamente, por ejemplo si tenemos
     que hacer una división y el divisor es cero, etc.
   Los errores que se pueden producir en la fase de compilación son:
   − Errores fatales: Son raros. Indican errores internos del compilador.
     Cuando ocurren la compilación se detiene inmediatamente.
   − Errores de sintaxis: Son los errores típicos de sintaxis. No detienen la
     compilación sino que al finalizar ésta se mostrará la lista con todos los
     errores encontrados. Algunos errores suelen ser consecuencia de otros
     cometidos con anterioridad. Con este tipo de errores no se puede obtener
     un programa objeto y por lo tanto tampoco el ejecutable.
   − Advertencias o avisos (warnings): Indican que hay líneas de código
     sospechosas que a pesar de no infringir ninguna regla sintáctica, el
     compilador las encuentra susceptibles de provocar un error. Cuando se
     detecta un warning la compilación no se detiene. Si en un programa
     fuente sólo se detectan warnings sí que se podrá obtener un programa
     objeto, que tras el linkado dará lugar a un programa ejecutable.



                                                                                  Página 3 de 5
Ingeniería Técnica Industrial
                                                                     Fundamentos de Informática


                           Tema 3. El proceso de compilación, del código fuente al código máquina


    Con respecto a los errores en tiempo de ejecución, encontrar la causa que
los provoca es una labor en ocasiones complicada, razón por la cual los EID
(Entornos Integrados de Desarrollo, p.ej. DevC++) nos proporcionan una
herramienta llamada Depurador que nos ayuda a encontrar los errores lógicos y
demás errores producidos en tiempo de ejecución.
    Un depurador (debugger), es un programa diseñado específicamente para la
detección, verificación y corrección de errores. 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.


Pasos para la elaboración y ejecución de un programa:
   Los pasos a seguir los podemos resumir de la siguiente manera:
   1 º. Escribir el código fuente, por ejemplo con el editor del EID.
   2 º. Compilar el fichero fuente
   3 º. Si se producen errores de sintaxis (o warnings) volver al editor y eliminar
       los errores de sintaxis.
   4 º. Si no hay errores se obtendrá el código objeto y el enlazador construirá el
       archivo ejecutable.
   5 º. Una vez tengamos el archivo ejecutable, será el sistema operativo el
      encargado de colocar el programa en la memoria central y ejecutarlo.
   6 º. Comprobar el funcionamiento del programa.
   7 º. Si se detecta errores o un mal funcionamiento del programa, activar el
       depurador para trazar el programa y ejecutarlo sentencia a sentencia.
   8 º. Una vez que hayamos encontrado la causa del error, volveremos al editor
       y lo corregimos.
   9 º. El proceso de compilar, enlazar y ejecutar el programa lo repetiremos
       hasta que no se produzcan errores.



                                                                                   Página 4 de 5
Ingeniería Técnica Industrial
                                                                    Fundamentos de Informática


                          Tema 3. El proceso de compilación, del código fuente al código máquina




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.
   1. Una utilidad del S.O. llamada cargador colocará el programa, y sus datos
      de entrada, en memoria principal, preparándolo para su ejecución.
   2. El S.O. le pasa el control a la C.P.U. para que comience la ejecución del
      programa, realizando la Unidad de Control los siguientes pasos (fases):
         Captación de la instrucción: Lee de la Memoria Principal la
         instrucción a ejecutar.
         Ejecución de la instrucción: Interpreta la instrucción leída y envía
         señales de control a las unidades que deban intervenir en su
         ejecución. Tras dicha ejecución se establece cuál será la siguiente
         instrucción a ejecutar.

3.3 El compilador de C. Características generales.

♦ El lenguaje C es un lenguaje muy potente y eficiente de nivel medio:
  combina elementos de lenguajes de alto nivel con la funcionalidad del
  lenguaje ensamblador. Es adecuado para la programación de sistemas.
♦ Es un lenguaje de propósito general (puede utilizarse para desarrollar
  sistemas operativos, gestores de bases de datos, etc).
♦ 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.
♦ El lenguaje C sólo tiene 32 palabras clave, (BASIC por ejemplo tiene 159).
♦ Suele incluir potentes librerías de funciones que aumentan su potencia.
♦ El lenguaje C es compilado, no interpretado. Un intérprete lee el código
  fuente de un programa línea a línea y las traduce online para que la CPU las
  pueda interpretar, pero no genera ningún programa objeto. Un compilador lee
  el programa entero, lo traduce y genera un código objeto directamente
  ejecutable y entendible por el microprocesador.

                                                                                  Página 5 de 5

Más contenido relacionado

La actualidad más candente

Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónKatherine Gonzales
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)tonytenorio2
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionjafp21
 
Lenguaje de programacion keneling gullo compu 1 []
Lenguaje de programacion keneling gullo compu 1 []Lenguaje de programacion keneling gullo compu 1 []
Lenguaje de programacion keneling gullo compu 1 []kenelinggullo
 
presentacion I BTP
presentacion I BTPpresentacion I BTP
presentacion I BTPcesia_97
 
Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compiladorElba Sepúlveda
 
Presentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajesPresentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajesDIEGO BAROJA
 
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...Sarai Rodriguez
 
Computación
ComputaciónComputación
Computaciónkateshita
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interpreteperlallamas
 
Generalidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorGeneralidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorsalvaradomar
 
Procesadores de lenguaje
Procesadores de lenguajeProcesadores de lenguaje
Procesadores de lenguajeeroque11
 

La actualidad más candente (20)

Compiladores iswi (parte 2)
Compiladores iswi (parte 2)Compiladores iswi (parte 2)
Compiladores iswi (parte 2)
 
Programacvion
ProgramacvionProgramacvion
Programacvion
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Lenguaje de programacion keneling gullo compu 1 []
Lenguaje de programacion keneling gullo compu 1 []Lenguaje de programacion keneling gullo compu 1 []
Lenguaje de programacion keneling gullo compu 1 []
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Bootstrapping
BootstrappingBootstrapping
Bootstrapping
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
presentacion I BTP
presentacion I BTPpresentacion I BTP
presentacion I BTP
 
Interprete vs compilador
Interprete vs compiladorInterprete vs compilador
Interprete vs compilador
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 
Presentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajesPresentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajes
 
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
 
Computación
ComputaciónComputación
Computación
 
Estructura de un interprete
Estructura de un interpreteEstructura de un interprete
Estructura de un interprete
 
Generalidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorGeneralidades del lenguaje ensamblador
Generalidades del lenguaje ensamblador
 
Procesadores de lenguaje
Procesadores de lenguajeProcesadores de lenguaje
Procesadores de lenguaje
 

Destacado

Entornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosEntornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosUGM
 
Reseña historica de la informatica
Reseña historica de la informaticaReseña historica de la informatica
Reseña historica de la informaticaLuisa Escudero
 
Memórias secundárias
Memórias secundáriasMemórias secundárias
Memórias secundáriasCarloxEnrike
 
PARADIGMA LOGICO
PARADIGMA LOGICOPARADIGMA LOGICO
PARADIGMA LOGICOFredy Olaya
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOFredy Olaya
 
Cuestionario Fundamentos de Programación
Cuestionario Fundamentos de ProgramaciónCuestionario Fundamentos de Programación
Cuestionario Fundamentos de ProgramaciónAnita Albán
 

Destacado (7)

Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigo
 
Entornos De Desarrollo Integrados
Entornos De Desarrollo IntegradosEntornos De Desarrollo Integrados
Entornos De Desarrollo Integrados
 
Reseña historica de la informatica
Reseña historica de la informaticaReseña historica de la informatica
Reseña historica de la informatica
 
Memórias secundárias
Memórias secundáriasMemórias secundárias
Memórias secundárias
 
PARADIGMA LOGICO
PARADIGMA LOGICOPARADIGMA LOGICO
PARADIGMA LOGICO
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Cuestionario Fundamentos de Programación
Cuestionario Fundamentos de ProgramaciónCuestionario Fundamentos de Programación
Cuestionario Fundamentos de Programación
 

Similar a Codigo De Maquina (20)

Clase programas
Clase programasClase programas
Clase programas
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
 
Proyectos informaticos
Proyectos informaticosProyectos informaticos
Proyectos informaticos
 
Innovacionk m
Innovacionk mInnovacionk m
Innovacionk m
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Esquema basico del software
Esquema basico del softwareEsquema basico del software
Esquema basico del software
 
Sesion01 c++
Sesion01  c++Sesion01  c++
Sesion01 c++
 
Introduccion programacion
Introduccion programacionIntroduccion programacion
Introduccion programacion
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Reseña historica introd. a la programación
Reseña historica introd. a la programaciónReseña historica introd. a la programación
Reseña historica introd. a la programación
 
Lenguaje de programación [autoguardado].pptm
Lenguaje de programación [autoguardado].pptmLenguaje de programación [autoguardado].pptm
Lenguaje de programación [autoguardado].pptm
 
Traductores de lenguaje
Traductores de lenguajeTraductores de lenguaje
Traductores de lenguaje
 
Humbis lenguaje
Humbis lenguajeHumbis lenguaje
Humbis lenguaje
 
NOCIONES BASICAS DE INFORMATICA
NOCIONES BASICAS DE INFORMATICANOCIONES BASICAS DE INFORMATICA
NOCIONES BASICAS DE INFORMATICA
 
Lenguaje de Programacion
Lenguaje de ProgramacionLenguaje de Programacion
Lenguaje de Programacion
 

Último

exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassexportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassJhonnyvalenssYupanqu
 
Clase 2 Ecosistema Emprendedor en Chile.
Clase 2 Ecosistema Emprendedor en Chile.Clase 2 Ecosistema Emprendedor en Chile.
Clase 2 Ecosistema Emprendedor en Chile.Gonzalo Morales Esparza
 
PRESENTACIÓN EDIFICIOS INDUSTRIALES.pptx
PRESENTACIÓN EDIFICIOS INDUSTRIALES.pptxPRESENTACIÓN EDIFICIOS INDUSTRIALES.pptx
PRESENTACIÓN EDIFICIOS INDUSTRIALES.pptxaramirezc21
 
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAYPPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAYCarlosAlbertoVillafu3
 
diseño de redes en la cadena de suministro.pptx
diseño de redes en la cadena de suministro.pptxdiseño de redes en la cadena de suministro.pptx
diseño de redes en la cadena de suministro.pptxjuanleivagdf
 
AUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptxAUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptxMatiasGodoy33
 
gua de docente para el curso de finanzas
gua de docente para el curso de finanzasgua de docente para el curso de finanzas
gua de docente para el curso de finanzassuperamigo2014
 
Buenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en drogueriasBuenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en drogueriasmaicholfc
 
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-ComunicacionesIMSA
 
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxMARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxgabyardon485
 
ISO 45001-2018.pdf norma internacional para la estandarización
ISO 45001-2018.pdf norma internacional para la estandarizaciónISO 45001-2018.pdf norma internacional para la estandarización
ISO 45001-2018.pdf norma internacional para la estandarizaciónjesuscub33
 
Como Construir Un Modelo De Negocio.pdf nociones basicas
Como Construir Un Modelo De Negocio.pdf   nociones basicasComo Construir Un Modelo De Negocio.pdf   nociones basicas
Como Construir Un Modelo De Negocio.pdf nociones basicasoscarhernandez98241
 
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptxCarlosQuionez42
 
cuadro sinoptico tipos de organizaci.pdf
cuadro sinoptico tipos de organizaci.pdfcuadro sinoptico tipos de organizaci.pdf
cuadro sinoptico tipos de organizaci.pdfjesuseleazarcenuh
 
ADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdfADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdfguillencuevaadrianal
 
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..JoseRamirez247144
 
clase de Mercados financieros - lectura importante
clase de Mercados financieros - lectura importanteclase de Mercados financieros - lectura importante
clase de Mercados financieros - lectura importanteJanettCervantes1
 
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESACOPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESADanielAndresBrand
 
EGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxEGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxDr. Edwin Hernandez
 

Último (20)

exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassexportacion y comercializacion de palta hass
exportacion y comercializacion de palta hass
 
Clase 2 Ecosistema Emprendedor en Chile.
Clase 2 Ecosistema Emprendedor en Chile.Clase 2 Ecosistema Emprendedor en Chile.
Clase 2 Ecosistema Emprendedor en Chile.
 
PRESENTACIÓN EDIFICIOS INDUSTRIALES.pptx
PRESENTACIÓN EDIFICIOS INDUSTRIALES.pptxPRESENTACIÓN EDIFICIOS INDUSTRIALES.pptx
PRESENTACIÓN EDIFICIOS INDUSTRIALES.pptx
 
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAYPPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
 
diseño de redes en la cadena de suministro.pptx
diseño de redes en la cadena de suministro.pptxdiseño de redes en la cadena de suministro.pptx
diseño de redes en la cadena de suministro.pptx
 
AUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptxAUDITORIAS en enfermeria hospitalaria .pptx
AUDITORIAS en enfermeria hospitalaria .pptx
 
Walmectratoresagricolas Trator NH TM7040.pdf
Walmectratoresagricolas Trator NH TM7040.pdfWalmectratoresagricolas Trator NH TM7040.pdf
Walmectratoresagricolas Trator NH TM7040.pdf
 
gua de docente para el curso de finanzas
gua de docente para el curso de finanzasgua de docente para el curso de finanzas
gua de docente para el curso de finanzas
 
Buenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en drogueriasBuenas Practicas de Almacenamiento en droguerias
Buenas Practicas de Almacenamiento en droguerias
 
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
 
MARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptxMARKETING SENSORIAL -GABRIELA ARDON .pptx
MARKETING SENSORIAL -GABRIELA ARDON .pptx
 
ISO 45001-2018.pdf norma internacional para la estandarización
ISO 45001-2018.pdf norma internacional para la estandarizaciónISO 45001-2018.pdf norma internacional para la estandarización
ISO 45001-2018.pdf norma internacional para la estandarización
 
Como Construir Un Modelo De Negocio.pdf nociones basicas
Como Construir Un Modelo De Negocio.pdf   nociones basicasComo Construir Un Modelo De Negocio.pdf   nociones basicas
Como Construir Un Modelo De Negocio.pdf nociones basicas
 
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
1.- PLANIFICACIÓN PRELIMINAR DE AUDITORÍA.pptx
 
cuadro sinoptico tipos de organizaci.pdf
cuadro sinoptico tipos de organizaci.pdfcuadro sinoptico tipos de organizaci.pdf
cuadro sinoptico tipos de organizaci.pdf
 
ADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdfADMINISTRACION FINANCIERA CAPITULO 4.pdf
ADMINISTRACION FINANCIERA CAPITULO 4.pdf
 
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..
 
clase de Mercados financieros - lectura importante
clase de Mercados financieros - lectura importanteclase de Mercados financieros - lectura importante
clase de Mercados financieros - lectura importante
 
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESACOPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
 
EGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptxEGLA CORP - Honduras Abril 27 , 2024.pptx
EGLA CORP - Honduras Abril 27 , 2024.pptx
 

Codigo De Maquina

  • 1. Ingeniería Técnica Industrial Fundamentos de Informática Tema 3. El proceso de compilación, del código fuente al código máquina TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido a un lenguaje de programación, de modo que un ordenador es capaz de ejecutarlo. Programación: Elaboración de un programa de manera que éste sea: − Correcto Un programa será correcto si hace lo que debe hacer, de modo que se deben especificar de manera muy clara cuáles son los datos sobre los que se trabajarán y lo que se debe hacer con ellos. Todo debe ser documentado y probado antes de desarrollarlo. − Eficiente Debe consumir la menor cantidad de recursos (tiempo y/o memoria) posible. − Claro Es muy importante la claridad y legibilidad de todo programa, ya que facilitará al máximo la tarea de mantenimiento posterior del software. − Modular Los programas suelen subdividirse en subprogramas (módulos), para reducir la complejidad de aquella parte que se está implementando y facilitar la reutilización de código. Para la elaboración de un programa hay que distinguir entre las siguientes dos fases: − Fase de compilación y linkado (link, montado o enlace) − Fase de ejecución de un programa Página 1 de 5
  • 2. Ingeniería Técnica Industrial Fundamentos de Informática Tema 3. El proceso de compilación, del código fuente al código máquina 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: Programa fuente: Programa escrito en un lenguaje de alto nivel (texto Programa Fuente ordinario que contiene las sentencias del (nombre.c) DEPURACIÓN del programa si se producen errores en ejecución programa en un lenguaje de programación). Necesita ser traducido a Con errores código máquina para poder ser COMPILADOR ejecutado. Compilador: Programa encargado Sin errores de traducir los programas fuentes escritos en un lenguaje de alto nivel a Librerías Programa Objeto lenguaje máquina y de comprobar que (nombre.o) las llamadas a las funciones de librería se realizan correctamente. ENLAZADOR Programa (o código) objeto: Es el programa fuente traducido (por el Sin errores compilador) a código máquina. Aún no es directamente ejecutable. Programa ejecutable (nombre.exe) Programa Ejecutable: Traducción completa a código máquina, realizada Figura 1. Proceso de transformación de un programa fuente a un programa ejecutable por el enlazador, del programa fuente y que ya es directamente ejecutable. Linker (montador o enlazador): Es el programa encargado de insertar al programa objeto el código máquina de las funciones de las librerías (archivos de biblioteca) usadas en el programa y realizar el proceso de montaje, que producirá un programa ejecutable .exe. Las librerias son una colección de código (funciones) ya programado y traducido a código máquina, listo para utilizar en un programa y que facilita la labor del programador. Página 2 de 5
  • 3. Ingeniería Técnica Industrial Fundamentos de Informática Tema 3. El proceso de compilación, del código fuente al código máquina Como cada lenguaje de programación tiene unas reglas especiales (sintaxis) debe existir un compilador específico para cada lenguaje de programación. Si el programa fuente es sintácticamente correcto, el compilador generará el código objeto, en caso contrario mostrará una lista con los errores encontrados, no generándose ningún programa objeto, para que procedamos a su depuración 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 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. Son los más difíciles de encontrar, no son detectados por el compilador, ya que son errores de lógica, no de sintaxis. Aunque al compilar un programa no de errores, el programa puede funcionar incorrectamente y/o a dar errores durante su ejecución. Por ejemplo: • Un programa puede producir resultados erróneos, al equivocarnos (errores lógicos) al programar el algoritmo (sumar en vez de restar, etc.). • Un programa puede interrumpirse bruscamente, por ejemplo si tenemos que hacer una división y el divisor es cero, etc. Los errores que se pueden producir en la fase de compilación son: − Errores fatales: Son raros. Indican errores internos del compilador. Cuando ocurren la compilación se detiene inmediatamente. − Errores de sintaxis: Son los errores típicos de sintaxis. No detienen la compilación sino que al finalizar ésta se mostrará la lista con todos los errores encontrados. Algunos errores suelen ser consecuencia de otros cometidos con anterioridad. Con este tipo de errores no se puede obtener un programa objeto y por lo tanto tampoco el ejecutable. − Advertencias o avisos (warnings): Indican que hay líneas de código sospechosas que a pesar de no infringir ninguna regla sintáctica, el compilador las encuentra susceptibles de provocar un error. Cuando se detecta un warning la compilación no se detiene. Si en un programa fuente sólo se detectan warnings sí que se podrá obtener un programa objeto, que tras el linkado dará lugar a un programa ejecutable. Página 3 de 5
  • 4. Ingeniería Técnica Industrial Fundamentos de Informática Tema 3. El proceso de compilación, del código fuente al código máquina Con respecto a los errores en tiempo de ejecución, encontrar la causa que los provoca es una labor en ocasiones complicada, razón por la cual los EID (Entornos Integrados de Desarrollo, p.ej. DevC++) nos proporcionan una herramienta llamada Depurador que nos ayuda a encontrar los errores lógicos y demás errores producidos en tiempo de ejecución. Un depurador (debugger), es un programa diseñado específicamente para la detección, verificación y corrección de errores. 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. Pasos para la elaboración y ejecución de un programa: Los pasos a seguir los podemos resumir de la siguiente manera: 1 º. Escribir el código fuente, por ejemplo con el editor del EID. 2 º. Compilar el fichero fuente 3 º. Si se producen errores de sintaxis (o warnings) volver al editor y eliminar los errores de sintaxis. 4 º. Si no hay errores se obtendrá el código objeto y el enlazador construirá el archivo ejecutable. 5 º. Una vez tengamos el archivo ejecutable, será el sistema operativo el encargado de colocar el programa en la memoria central y ejecutarlo. 6 º. Comprobar el funcionamiento del programa. 7 º. Si se detecta errores o un mal funcionamiento del programa, activar el depurador para trazar el programa y ejecutarlo sentencia a sentencia. 8 º. Una vez que hayamos encontrado la causa del error, volveremos al editor y lo corregimos. 9 º. El proceso de compilar, enlazar y ejecutar el programa lo repetiremos hasta que no se produzcan errores. Página 4 de 5
  • 5. Ingeniería Técnica Industrial Fundamentos de Informática Tema 3. El proceso de compilación, del código fuente al código máquina 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. 1. Una utilidad del S.O. llamada cargador colocará el programa, y sus datos de entrada, en memoria principal, preparándolo para su ejecución. 2. El S.O. le pasa el control a la C.P.U. para que comience la ejecución del programa, realizando la Unidad de Control los siguientes pasos (fases): Captación de la instrucción: Lee de la Memoria Principal la instrucción a ejecutar. Ejecución de la instrucción: Interpreta la instrucción leída y envía señales de control a las unidades que deban intervenir en su ejecución. Tras dicha ejecución se establece cuál será la siguiente instrucción a ejecutar. 3.3 El compilador de C. Características generales. ♦ El lenguaje C es un lenguaje muy potente y eficiente de nivel medio: combina elementos de lenguajes de alto nivel con la funcionalidad del lenguaje ensamblador. Es adecuado para la programación de sistemas. ♦ Es un lenguaje de propósito general (puede utilizarse para desarrollar sistemas operativos, gestores de bases de datos, etc). ♦ 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. ♦ El lenguaje C sólo tiene 32 palabras clave, (BASIC por ejemplo tiene 159). ♦ Suele incluir potentes librerías de funciones que aumentan su potencia. ♦ El lenguaje C es compilado, no interpretado. Un intérprete lee el código fuente de un programa línea a línea y las traduce online para que la CPU las pueda interpretar, pero no genera ningún programa objeto. Un compilador lee el programa entero, lo traduce y genera un código objeto directamente ejecutable y entendible por el microprocesador. Página 5 de 5