SlideShare una empresa de Scribd logo
1 de 5
COMPILADOR Y TRADUCTORES
Concepto.
Un compilador es un programa informático que traduce un programa escrito a un lenguaje de
alto nivel a otro lenguaje de bajo nivel, produciendo un programa equivalente que puede ser
leída por un microprocesador.

Lenguaje de máquina (lenguaje binario). –
Es un conjunto de símbolos directamente interpretable por una máquina.
Un lenguaje es un conjunto de símbolos.
Lenguaje de alto nivel es cuando está cerca de nosotros.
Lenguaje de alto nivel = (natural)
Concepto. - el lenguaje de alto nivel es un lenguaje cuya característica es la semejanza con
el lenguaje natural. (Lenguaje de las personas).
Lenguaje de bajo nivel (se asemeja a la máquina)
un lenguaje de bajo nivel es un lenguaje que tiene gran semejanza con el lenguaje de
máquina.
                    Compilador = cuando el lenguaje de alto nivel a bajo nivel.
                     Traductor = cuando el lenguaje de bajo nivel a alto nivel.

COMPILADOR
      Partes o funciones:

                El análisis
                La síntesis

ANALISIS: 3 etapas

          1. Análisis léxico
          2. Análisis sintáctico
          3. Análisis semántico

El análisis léxico: consiste en la traducción del código fuente a elementos léxicos.


                                 Verifica los componentes léxicos

Análisis sintáctico: consiste en el agrupamiento d elementos léxicos en frases
gramaticales.
                       Verifica qué tenga sentido la sentencia
Análisis semántico: consiste en la validación de dichas frases gramaticales o
sentencias.
                                 Verifica la valides de las operaciones

TOKEN: elementos léxicos (símbolos en la programación)
Ejemplo
    A     =    B    +    C       TODOS LOS SIMBOLOS SON TOKEN

Las Palabras reservadas también son TOKEN. ( if , while , for ,etc.)

SINTESIS.- consiste en producir un código objeto o BYTECODE que será
interpretado por una maquina.

CODIGO OBJETO.- es un fichero lista para ser ejecutado por la maquina.
Durante el proceso de compilación se crea 2 tablas:
   1. TABLA DE SIMBOLOS
   2. TABLA DE ERRORES

Tabla de símbolo.- es una estructura de datos q contiene información de todos los
elementos léxicos del código.


                        EL COMPILADOR PARA HACER EL ANALISIS LEXICO UTILIZA LA
                                               TABLA DE SIMBOLOS


                                       TABLA DE SIMBOLOS



              NOMBRE                          POSICION                         TIPO

                A                                  1                           INT
                B                                  2                          STRING



        MEMORIA ASIGNADA:

        0                    “”

        1                    2                     3                      4            5   (Posición)

                        Valor la variable.
TABLA DE ERRORES.- es una estructura de datos q almacena información sobre los
eventos durante la compilación.

                                    TABLA DE ERRORES

                  CODIGO                                          MENSAJE


                      1                                      “ variable duplicada”




Constante.- Es una variable que su valor no puede cambiar.

Variable.- Si puede cambiar o asignarle otro valor.

Optimización.- Es el proceso por el cual se mejora la calidad del fichero ejecutable.

Optimización(dos tipos)

   1. optimización de velocidad.
   2. Optimización de tamaño.

Optimización de velocidad. -Es el tipo de optimización que hace que un fichero se ejecute
más rápidamente.

Optimización de tamaño. -Es el tipo de optimización que hace que un fichero sea lo más
pequeño posible.

              Tipo                    Tamaño (bytes)                Tiempo ejecución

              Int                             4                          Rápido
             Float                            8                          Lento
             String                           N                           lento
unit1.cpp codigo

unit1 intermedio objeto

proyecto1.exe ejecutable

if while repeat loop

instrucciones básicas de un compilador son

           if   ( condiciones)

         while (bucles,iteracciones)

las demas for do loop repet case son solo variaciones

instrucción especial

         goto ( ir a ) (saltos) < go to >

sirve para saltar de una línea a otra

es una instruccion para realizar saltos en la ejecución de un programa

ejemplo:

1LEER (A)                           1 LEER (A)

2LEER (B)                           2LEER (B)

3IF ](A>B)                         3 IF (B>A) GOTO 6

4 MOSTRAR(A)                             4 MOSTRAR (A)

5 ELSE                             5GOTO (7)

6 MOSTRAR (B)                            6 MOSTRAR

7 FIN                            7FIN



1INT i=0;                        1int i=0;

2while (i<10) {                   2 show message ();

3show message ();                3i++;

4i++                             4if (i< 10) goto 2
5}                               5 fin

      Dim x as integer;
Dim paises(2) As String;
       „Llena el vector con datos
         paises(0) = "Argentina";
        paises(1) = "Perú";
      paises(2) = "Brasil";
      „Recorre los elementos del vector
        x= 0
       while x > 2
        MsgBox "Nombre del país : " & paises(x)
             x = x+1
        end while



      dim x as integer

      dim paises (2) as string

      paises (0) = "bolivia"

      paises (1)= "peru"

      paises (2)= "mexico"

      x= 0

       msgbox "nombre del pais: " & paises(x)

       x= x+1

       if x < 3 goto 7

       fin

Más contenido relacionado

La actualidad más candente

Estructuras de los lenguajes de programacion
Estructuras de los lenguajes de programacionEstructuras de los lenguajes de programacion
Estructuras de los lenguajes de programacion
ManuelDorante65
 
Generador de codigo lenguajes de programacion
Generador de codigo lenguajes de programacionGenerador de codigo lenguajes de programacion
Generador de codigo lenguajes de programacion
bulnez
 
Codigo intermedio
Codigo intermedioCodigo intermedio
Codigo intermedio
Emanuel Gs
 

La actualidad más candente (19)

ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++
 
Estructura basica para c++
Estructura basica para c++Estructura basica para c++
Estructura basica para c++
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
Estructura de Programa en C++
Estructura de Programa en C++Estructura de Programa en C++
Estructura de Programa en C++
 
Estructuras de los lenguajes de programacion
Estructuras de los lenguajes de programacionEstructuras de los lenguajes de programacion
Estructuras de los lenguajes de programacion
 
Semana 7 Proyecto Misión TIC 2022
Semana 7 Proyecto Misión TIC 2022Semana 7 Proyecto Misión TIC 2022
Semana 7 Proyecto Misión TIC 2022
 
Santaella u5 Lenguaje C++
Santaella u5 Lenguaje C++Santaella u5 Lenguaje C++
Santaella u5 Lenguaje C++
 
02 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 302 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 3
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
C:\fakepath\generador de codigo_intermedio
C:\fakepath\generador de codigo_intermedioC:\fakepath\generador de codigo_intermedio
C:\fakepath\generador de codigo_intermedio
 
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
 
Generador de codigo lenguajes de programacion
Generador de codigo lenguajes de programacionGenerador de codigo lenguajes de programacion
Generador de codigo lenguajes de programacion
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2
 
Codigo intermedio
Codigo intermedioCodigo intermedio
Codigo intermedio
 
01 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 301 - Introducción al lenguaje de programación Python 3
01 - Introducción al lenguaje de programación Python 3
 

Similar a Compiladores

Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
perlallamas
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_
LaishaXime
 
Estructura basica de_c_(2)
Estructura basica de_c_(2)Estructura basica de_c_(2)
Estructura basica de_c_(2)
gadiel1515
 
Cap4
Cap4Cap4
Cap4
CJAO
 

Similar a Compiladores (20)

Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Visual
VisualVisual
Visual
 
Introducción a los entornos de programación
Introducción a los entornos de programaciónIntroducción a los entornos de programación
Introducción a los entornos de programación
 
Portafolio de evidencias actividades
Portafolio de evidencias actividadesPortafolio de evidencias actividades
Portafolio de evidencias actividades
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_
 
Estructura basica de_c_(2)
Estructura basica de_c_(2)Estructura basica de_c_(2)
Estructura basica de_c_(2)
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datos
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
 
Cap4
Cap4Cap4
Cap4
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_
 
Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
P01 secuencial
P01 secuencialP01 secuencial
P01 secuencial
 
Estructura(2)
Estructura(2)Estructura(2)
Estructura(2)
 

Compiladores

  • 1. COMPILADOR Y TRADUCTORES Concepto. Un compilador es un programa informático que traduce un programa escrito a un lenguaje de alto nivel a otro lenguaje de bajo nivel, produciendo un programa equivalente que puede ser leída por un microprocesador. Lenguaje de máquina (lenguaje binario). – Es un conjunto de símbolos directamente interpretable por una máquina. Un lenguaje es un conjunto de símbolos. Lenguaje de alto nivel es cuando está cerca de nosotros. Lenguaje de alto nivel = (natural) Concepto. - el lenguaje de alto nivel es un lenguaje cuya característica es la semejanza con el lenguaje natural. (Lenguaje de las personas). Lenguaje de bajo nivel (se asemeja a la máquina) un lenguaje de bajo nivel es un lenguaje que tiene gran semejanza con el lenguaje de máquina. Compilador = cuando el lenguaje de alto nivel a bajo nivel. Traductor = cuando el lenguaje de bajo nivel a alto nivel. COMPILADOR Partes o funciones: El análisis La síntesis ANALISIS: 3 etapas 1. Análisis léxico 2. Análisis sintáctico 3. Análisis semántico El análisis léxico: consiste en la traducción del código fuente a elementos léxicos. Verifica los componentes léxicos Análisis sintáctico: consiste en el agrupamiento d elementos léxicos en frases gramaticales. Verifica qué tenga sentido la sentencia
  • 2. Análisis semántico: consiste en la validación de dichas frases gramaticales o sentencias. Verifica la valides de las operaciones TOKEN: elementos léxicos (símbolos en la programación) Ejemplo A = B + C TODOS LOS SIMBOLOS SON TOKEN Las Palabras reservadas también son TOKEN. ( if , while , for ,etc.) SINTESIS.- consiste en producir un código objeto o BYTECODE que será interpretado por una maquina. CODIGO OBJETO.- es un fichero lista para ser ejecutado por la maquina. Durante el proceso de compilación se crea 2 tablas: 1. TABLA DE SIMBOLOS 2. TABLA DE ERRORES Tabla de símbolo.- es una estructura de datos q contiene información de todos los elementos léxicos del código. EL COMPILADOR PARA HACER EL ANALISIS LEXICO UTILIZA LA TABLA DE SIMBOLOS TABLA DE SIMBOLOS NOMBRE POSICION TIPO A 1 INT B 2 STRING MEMORIA ASIGNADA: 0 “” 1 2 3 4 5 (Posición) Valor la variable.
  • 3. TABLA DE ERRORES.- es una estructura de datos q almacena información sobre los eventos durante la compilación. TABLA DE ERRORES CODIGO MENSAJE 1 “ variable duplicada” Constante.- Es una variable que su valor no puede cambiar. Variable.- Si puede cambiar o asignarle otro valor. Optimización.- Es el proceso por el cual se mejora la calidad del fichero ejecutable. Optimización(dos tipos) 1. optimización de velocidad. 2. Optimización de tamaño. Optimización de velocidad. -Es el tipo de optimización que hace que un fichero se ejecute más rápidamente. Optimización de tamaño. -Es el tipo de optimización que hace que un fichero sea lo más pequeño posible. Tipo Tamaño (bytes) Tiempo ejecución Int 4 Rápido Float 8 Lento String N lento
  • 4. unit1.cpp codigo unit1 intermedio objeto proyecto1.exe ejecutable if while repeat loop instrucciones básicas de un compilador son if ( condiciones) while (bucles,iteracciones) las demas for do loop repet case son solo variaciones instrucción especial goto ( ir a ) (saltos) < go to > sirve para saltar de una línea a otra es una instruccion para realizar saltos en la ejecución de un programa ejemplo: 1LEER (A) 1 LEER (A) 2LEER (B) 2LEER (B) 3IF ](A>B) 3 IF (B>A) GOTO 6 4 MOSTRAR(A) 4 MOSTRAR (A) 5 ELSE 5GOTO (7) 6 MOSTRAR (B) 6 MOSTRAR 7 FIN 7FIN 1INT i=0; 1int i=0; 2while (i<10) { 2 show message (); 3show message (); 3i++; 4i++ 4if (i< 10) goto 2
  • 5. 5} 5 fin Dim x as integer; Dim paises(2) As String; „Llena el vector con datos paises(0) = "Argentina"; paises(1) = "Perú"; paises(2) = "Brasil"; „Recorre los elementos del vector x= 0 while x > 2 MsgBox "Nombre del país : " & paises(x) x = x+1 end while dim x as integer dim paises (2) as string paises (0) = "bolivia" paises (1)= "peru" paises (2)= "mexico" x= 0 msgbox "nombre del pais: " & paises(x) x= x+1 if x < 3 goto 7 fin