4
Lo más leído
6
Lo más leído
8
Lo más leído
Compiladores
Los compiladores son programas de
computadora que traducen de un
lenguaje a otro.
Un compilador toma como su entrada
un programa escrito en lenguaje
fuente y produce un programa
equivalente escrito en lenguaje
objeto.
A lo largo del proceso de traducción el
compilador debe informar la presencia de errores
en el lenguaje fuente.
Análisis Léxico
Análisis Sintáctico
Análisis Semántico
Generación y Optimización de
código intermedio
Generación de código objeto
Lee la secuencia de caracteres de
izquierda a derecha del Programa
fuente y agrupa las secuencias de
caracteres en unidades con
significado propio.
 Palabras clave
 Identificadores
 Operadores
 Constantes numéricas
 Signos de puntuación
Separadores de
sentencias, llaves,
paréntesis, etc.
Componentes léxicos o
“tokens” en ingles
Ejemplo:
A[i] = 4 + 2;
A identificador
[ corchete de apertura
i Identificador
] corchete de cierre
= operador de asignación
4 numero
+ operador suma
2 numero
; punto y coma
Se realiza un análisis símbolo a símbolo indicando el tóken
para cada una de las cadenas reconocidas o un error en caso
de no reconocer la cadena.
Area = base * altura / 2
Id1 = Id2 * Id3 / 2
ANALIZADOR
LÉXICO
Determina si la secuencia de
componentes léxicos sigue la sintaxis
del lenguaje y obtiene la estructura
jerárquica del programa en forma de
árbol, donde los nodos son las
construcciones de alto nivel del
lenguaje.
Se determinan las relaciones estructurales entre
los componentes léxicos.
Representa un elemento estructural
denominado expresión, la cual es una
expresión de asignación compuesta de
una expresión de subíndice a la izquierda
y una expresión aritmética a la derecha.
De ejemplo
anterior:
A[i] = 4 + 2;
EXPRESIÓN DE SUBÍNDICE EXPRESIÓN ARITMÉTICA
ÁRBOL DE ANÁLISIS GRAMATICAL
Expresión
Expresión Expresión
Expresión de asignación
Expresión
aditiva
Expresión
índice
ExpresiónExpresión Expresión Expresión
Id A Id i Numero 4 Numero 2
Los árboles de análisis gramatical son útiles para
visualizar la sintaxis de un programa pero no es
eficaz en la representación de esa estructura. Los
analizadores sintácticos tienden a generar un
árbol sintáctico
Una simplificación de la
información contenida en
un árbol de análisis
gramatical.
Id A Id i Numero 4 Numero 2
Realiza las comprobaciones necesarias
sobre el árbol sintáctico para determinar el
correcto significado del programa.
 La verificación e inferencia de tipos en asignaciones y
expresiones.
 La declaración del tipo de variables y funciones antes
de su uso
 El correcto uso de operadores
 El ámbito de las variables
 La correcta llamada a funciones.
 En análisis semántico es necesario hacer
uso de la Tabla de símbolos, como
estructura de datos para almacenar
información sobre los identificadores que
van surgiendo a lo largo del programa.
 El analizador semántico registrara el árbol
sintáctico con los tipos de datos de las
expresiones y verificara que la asignación
tiene sentido para los tipos, en caso
contrario mandara un mensaje de error en
correspondencia de tipos.
Id A Id i
Numero 4 Numero 2
Tomando el
mismo ejemplo:
Tipo: entero
Tipo: entero Tipo: entero
Tipo: entero
Tipo: entero Tipo: entero
Constante Constante
 Facilitar el proceso de optimización.
 Facilitar la traducción al lenguaje de la máquina.
 Compatibilización (el análisis será independiente de
la computadora física).
Se traduce el programa
fuente a otro lenguaje más
sencillo.
Genera un código mejorado, ya no
estructurado, más fácil de traducir
directamente a código
ensamblador o máquina
Construye el programa objeto,
esto es, se genera el código en
ensamblador, propio de la
plataforma en la que se ejecutará
el programa. La tabla de
símbolos contendrá
normalmente información
detallada sobre la memoria
utilizada por las variables.

Más contenido relacionado

PPT
Conceptos Basicos Programacion
PPT
10 Clase Captura De Los Requisitos Cap.6
PPT
Código intermedio
PPTX
Programación estructurada
PPTX
Herramientas case
PPTX
Tópicos avanzados de programación eventos
PDF
Programación del lado del cliente
Conceptos Basicos Programacion
10 Clase Captura De Los Requisitos Cap.6
Código intermedio
Programación estructurada
Herramientas case
Tópicos avanzados de programación eventos
Programación del lado del cliente

La actualidad más candente (20)

PPTX
Fundamentos de ingenieria del software (2)
PPTX
Clases/Tipos de lenguajes de programación
PPTX
Programacion Orientada a Eventos
PPT
INDICES EN SQL SERVER
PPTX
Requerimientos del software
PDF
Calculadora con operaciones básicas en java
PDF
Analisis sintactico
PPT
Generador de codigo intermedio
PPTX
Actividad 3 cuadro comparativo de lenguajes
PPTX
Capas de la ingenieria de software
PPTX
El proceso de razonamiento según la logica
PPTX
1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
DOCX
Cuadro comparativo de manejadores de la base de datos
PPTX
Modos de direccionamiento y formatos
PPTX
Tipos de listas en estructura de datos
PPTX
Modelo Cascada y Espiral
PPTX
Tópicos Avanzados de Programación - Unidad 1 GUI
PDF
Generacion codigomaquina
PPTX
Programacion web c5 programacion del lado servidor
PPTX
Funciones de administracion de memoria
Fundamentos de ingenieria del software (2)
Clases/Tipos de lenguajes de programación
Programacion Orientada a Eventos
INDICES EN SQL SERVER
Requerimientos del software
Calculadora con operaciones básicas en java
Analisis sintactico
Generador de codigo intermedio
Actividad 3 cuadro comparativo de lenguajes
Capas de la ingenieria de software
El proceso de razonamiento según la logica
1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
Cuadro comparativo de manejadores de la base de datos
Modos de direccionamiento y formatos
Tipos de listas en estructura de datos
Modelo Cascada y Espiral
Tópicos Avanzados de Programación - Unidad 1 GUI
Generacion codigomaquina
Programacion web c5 programacion del lado servidor
Funciones de administracion de memoria
Publicidad

Destacado (10)

PPSX
Herramientas
PPSX
Expresiones Regulares
PPT
DiseñO De Compilador
PPTX
Compiladores
PPT
Estructura de un compilador 2
PPTX
Compiladores, Analisis Lexico, Tabla de Transiciones
PPSX
Lenguajes formales
PDF
Automatas y compiladores clase3
PPT
Compilador
PPT
Compiladores
Herramientas
Expresiones Regulares
DiseñO De Compilador
Compiladores
Estructura de un compilador 2
Compiladores, Analisis Lexico, Tabla de Transiciones
Lenguajes formales
Automatas y compiladores clase3
Compilador
Compiladores
Publicidad

Similar a Compiladores (20)

PPT
Proceso de Compilacion
PDF
investigacion 4.4 y 4.5.pdf
PDF
investigacion.pdf
PPT
Compiladores
PPTX
lexico.pptx
PPT
Actividad 2 Analizador léxico, sintáctico y semántico
PPSX
Actividad 2 programacion de sistemas
PDF
TALLER ANÁLISIS SINTÁCTICO
PDF
Analisis sintactico actividad 15
PDF
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
DOCX
Compiladores (1) pedro vasques
PPTX
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
PPT
Curso prog sist
PPTX
Compiladores
PDF
Unidad4 analisis-semantico
PDF
Analisis semantico 06 06-2019 galarraga
PDF
Taller compiladores Análisis Semántico
PPTX
Actividad 2 Programación de Sistemas.
PPT
Compiladores Ex..ppt
PDF
Analizador Sintactico
Proceso de Compilacion
investigacion 4.4 y 4.5.pdf
investigacion.pdf
Compiladores
lexico.pptx
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 programacion de sistemas
TALLER ANÁLISIS SINTÁCTICO
Analisis sintactico actividad 15
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
Compiladores (1) pedro vasques
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Curso prog sist
Compiladores
Unidad4 analisis-semantico
Analisis semantico 06 06-2019 galarraga
Taller compiladores Análisis Semántico
Actividad 2 Programación de Sistemas.
Compiladores Ex..ppt
Analizador Sintactico

Más de Isabel (20)

PDF
Isabel trejo reconocimientofacial_evidencia1
PPSX
Gmail
PDF
Algortimos
PPSX
Unidad 3
PPSX
Unidad 3
PDF
Factores
PDF
Software de alta calidad
PPSX
Unidad 2
PPTX
Historia
PDF
Modelo de datos
PDF
Mda informatica
PPSX
Sgbd
PPSX
Conceptos basicos
PPSX
Unidad 1 ciclo de vida
PDF
Roles desarrollo software
PPSX
Unidad 1 conceptos introductorios
PDF
Tablas dinámicas
PDF
Referencia de celdas
PDF
Practica no.2
PDF
Componentes de un sistema de base de datos
Isabel trejo reconocimientofacial_evidencia1
Gmail
Algortimos
Unidad 3
Unidad 3
Factores
Software de alta calidad
Unidad 2
Historia
Modelo de datos
Mda informatica
Sgbd
Conceptos basicos
Unidad 1 ciclo de vida
Roles desarrollo software
Unidad 1 conceptos introductorios
Tablas dinámicas
Referencia de celdas
Practica no.2
Componentes de un sistema de base de datos

Último (20)

DOCX
PROGRAMA ANALITICO ESCUela en san luis potosi 25-26.docx
PDF
200514 Colombia hacia una sociedad del conocimiento vol I_CC.pdf
PDF
50000 mil words en inglés más usados.pdf
PDF
Mindfulness en la Vida Cotidiana JKZ Ccesa007.pdf
PDF
El Gran Movimiento Adventista desde sus mismos inicios
PPTX
UNIDAD 8 - C.C.S.S. EL CRECIMIENTO ECONÓMICO.pptx
PDF
Escribalo y Hágalo Realidad HAK Ccesa007.pdf
PDF
4. Guía para el Seguimiento y Evaluación de Proyectos Sociales.pdf
PPTX
PONENCIA PROMOCION DE LA SALUD JERUSALEN 25.pptx
PDF
PROGRAMAS CIENCIAS - 2022 Act 22032024.pdf
PDF
El Seminario 23. El sinthome [Jacques Lacan].pdf
PDF
9786075269641-libro-de-biologiagcgfdgxhfgxhffchfhjv.pdf
PDF
Programa de Ciudadanía y Valores_Segundo Ciclo.pdf
PDF
CUADERNILLO_PROGRESIONES_HUMANIDADES_II.
PDF
cuyes_lara.pdf - libro de información para el área de Arqueológica
PDF
UNIDAD 2 | Parte 2 | Informar con precisión y criterio
DOCX
Programa Analítico Matemáticas 1° Editorial MD.docx
PDF
FUNDACIÓN DE HUANCAVELICA - Autor Pedro C.
PDF
Manejo de Fauna.pdf silvestre ...........
PPTX
Programa analitico 2024-2025 Jardín de niños Ramón Gonzáles Villarreal. T.M. ...
PROGRAMA ANALITICO ESCUela en san luis potosi 25-26.docx
200514 Colombia hacia una sociedad del conocimiento vol I_CC.pdf
50000 mil words en inglés más usados.pdf
Mindfulness en la Vida Cotidiana JKZ Ccesa007.pdf
El Gran Movimiento Adventista desde sus mismos inicios
UNIDAD 8 - C.C.S.S. EL CRECIMIENTO ECONÓMICO.pptx
Escribalo y Hágalo Realidad HAK Ccesa007.pdf
4. Guía para el Seguimiento y Evaluación de Proyectos Sociales.pdf
PONENCIA PROMOCION DE LA SALUD JERUSALEN 25.pptx
PROGRAMAS CIENCIAS - 2022 Act 22032024.pdf
El Seminario 23. El sinthome [Jacques Lacan].pdf
9786075269641-libro-de-biologiagcgfdgxhfgxhffchfhjv.pdf
Programa de Ciudadanía y Valores_Segundo Ciclo.pdf
CUADERNILLO_PROGRESIONES_HUMANIDADES_II.
cuyes_lara.pdf - libro de información para el área de Arqueológica
UNIDAD 2 | Parte 2 | Informar con precisión y criterio
Programa Analítico Matemáticas 1° Editorial MD.docx
FUNDACIÓN DE HUANCAVELICA - Autor Pedro C.
Manejo de Fauna.pdf silvestre ...........
Programa analitico 2024-2025 Jardín de niños Ramón Gonzáles Villarreal. T.M. ...

Compiladores

  • 2. Los compiladores son programas de computadora que traducen de un lenguaje a otro. Un compilador toma como su entrada un programa escrito en lenguaje fuente y produce un programa equivalente escrito en lenguaje objeto. A lo largo del proceso de traducción el compilador debe informar la presencia de errores en el lenguaje fuente.
  • 3. Análisis Léxico Análisis Sintáctico Análisis Semántico Generación y Optimización de código intermedio Generación de código objeto
  • 4. Lee la secuencia de caracteres de izquierda a derecha del Programa fuente y agrupa las secuencias de caracteres en unidades con significado propio.  Palabras clave  Identificadores  Operadores  Constantes numéricas  Signos de puntuación Separadores de sentencias, llaves, paréntesis, etc. Componentes léxicos o “tokens” en ingles
  • 5. Ejemplo: A[i] = 4 + 2; A identificador [ corchete de apertura i Identificador ] corchete de cierre = operador de asignación 4 numero + operador suma 2 numero ; punto y coma Se realiza un análisis símbolo a símbolo indicando el tóken para cada una de las cadenas reconocidas o un error en caso de no reconocer la cadena.
  • 6. Area = base * altura / 2 Id1 = Id2 * Id3 / 2 ANALIZADOR LÉXICO
  • 7. Determina si la secuencia de componentes léxicos sigue la sintaxis del lenguaje y obtiene la estructura jerárquica del programa en forma de árbol, donde los nodos son las construcciones de alto nivel del lenguaje. Se determinan las relaciones estructurales entre los componentes léxicos.
  • 8. Representa un elemento estructural denominado expresión, la cual es una expresión de asignación compuesta de una expresión de subíndice a la izquierda y una expresión aritmética a la derecha. De ejemplo anterior: A[i] = 4 + 2; EXPRESIÓN DE SUBÍNDICE EXPRESIÓN ARITMÉTICA ÁRBOL DE ANÁLISIS GRAMATICAL
  • 9. Expresión Expresión Expresión Expresión de asignación Expresión aditiva Expresión índice ExpresiónExpresión Expresión Expresión Id A Id i Numero 4 Numero 2
  • 10. Los árboles de análisis gramatical son útiles para visualizar la sintaxis de un programa pero no es eficaz en la representación de esa estructura. Los analizadores sintácticos tienden a generar un árbol sintáctico Una simplificación de la información contenida en un árbol de análisis gramatical. Id A Id i Numero 4 Numero 2
  • 11. Realiza las comprobaciones necesarias sobre el árbol sintáctico para determinar el correcto significado del programa.  La verificación e inferencia de tipos en asignaciones y expresiones.  La declaración del tipo de variables y funciones antes de su uso  El correcto uso de operadores  El ámbito de las variables  La correcta llamada a funciones.
  • 12.  En análisis semántico es necesario hacer uso de la Tabla de símbolos, como estructura de datos para almacenar información sobre los identificadores que van surgiendo a lo largo del programa.  El analizador semántico registrara el árbol sintáctico con los tipos de datos de las expresiones y verificara que la asignación tiene sentido para los tipos, en caso contrario mandara un mensaje de error en correspondencia de tipos.
  • 13. Id A Id i Numero 4 Numero 2 Tomando el mismo ejemplo: Tipo: entero Tipo: entero Tipo: entero Tipo: entero Tipo: entero Tipo: entero Constante Constante
  • 14.  Facilitar el proceso de optimización.  Facilitar la traducción al lenguaje de la máquina.  Compatibilización (el análisis será independiente de la computadora física). Se traduce el programa fuente a otro lenguaje más sencillo.
  • 15. Genera un código mejorado, ya no estructurado, más fácil de traducir directamente a código ensamblador o máquina
  • 16. Construye el programa objeto, esto es, se genera el código en ensamblador, propio de la plataforma en la que se ejecutará el programa. La tabla de símbolos contendrá normalmente información detallada sobre la memoria utilizada por las variables.