SlideShare uma empresa Scribd logo
1 de 23
Ejemplo Etapas de
Compilación
2

Fases y Etapas de Compilación

Pedro Antonio Villalta
https://plus.google.com/u/0/105223072803758915793/about

Facebook y Twitter
Facebook.com/pavillalta
twitter.com/pavillalta

Mis Correos
pavillalta@gmail.com
pavillalta@ugb.edu.sv
Mis perfiles en Redes Sociales
Mis Blog Educativos
http://compiladores-interpretes.blogspot.com/
http://programacion-visualbasic-net.blogspot.com/
http://ingenieria-en-sistemas-informaticos.blogspot.com/

http://investigacion-cientifica-docente.blogspot.com/
http://soporteredes.blogspot.com/
http://ecomerce-comercio-electronico.blogspot.com/

http://miw2012.blogspot.com/
http://programacion-visual-c-net.blogspot.com/
http://programacion-web-php.blogspot.com/

http://programacion-moviles.blogspot.com/
http://noticias-detecnologia.blogspot.com/
Repaso Sobre las Fases de un Compilador
Las cinco fases de un compilador
anteriormente son las siguientes:
I. Análisis léxico.
II. Análisis sintáctico.
III. Análisis semántica.
IV. Generación de Código.
V. Optimización.
VI.Generación de Código Intermedio

descritas
I. Analisis Lexico
El analizador léxico lee el archivo fuente carácter por
carácter y forma grupos de caracteres (lexemas) con
un significado léxico mínimo, nominados tokens, que
son tratados como una entidad única.



El analizador léxico también elimina los componentes
no esenciales del programa fuente, e ignora los
espacios en blanco, los tabuladores, los caracteres de
final de línea, los comentarios y, en general, todo lo que
no sea necesario en las fases posteriores.


Ejemplo de Análisis Léxico

ValorX = ValorY + 1;
Tenemos:
EXPRESION
PUNTO_Y_COMA
SUMA
IDENTIFICADOR
ENTERO
Ejemplo de Análisis Léxico
II. Análisis Sintáctico




Utiliza los tokens encontrados por el
analizador léxico y comprueba si llegan en
el orden correcto proporcionado por la
gramática libre de contexto que define el
lenguaje fuente.

La salida del análisis sintáctico suele ser un
árbol sintáctico con la estructura sintáctica
del programa fuente.
Ejemplo de Árbol Sintáctico
III. Análisis Semántico
El analizador semántico se ocupa de
comprobar el significado de las sentencias.

puede

haber

sentencias

sintácticamente

correctas, pero que no se puedan ejecutar

por no tener ningún sentido.
III. Análisis Semántico
Generalmente, este análisis se hace al mismo
tiempo que el sintáctico, introduce rutinas
semánticas que intentan encontrar errores de
significado (semánticos) a partir del árbol
sintáctico.

Al mismo tiempo reúnen información sobre los
tipos

de

datos

del

programa

fuente

(variables, constantes, etc.) que será utilizada en
la fase de generación de código.
Funciones del Análisis Semántico




Determina el tipo de los resultados
intermedios de las operaciones.
Comprueba que los operandos de un
operador pertenezcan al conjunto de los
tipos posibles para el operador y si son
compatibles entre sí.
Resultado del Análisis Semántico

La salida del análisis
semántico suele ser un
árbol semántico, que no es
más que un árbol sintáctico
en el que cada nodo ha
adquirido su significado.
Ejemplo de Análisis Semántico
IV. Generación de Código Intermedio
Una técnica para facilitar la tarea de
creación de nuevos compiladores consiste
en dividir el compilador en dos partes:

una

fase

de

análisis

y

una

de

síntesis, comunicadas con un lenguaje
intermedio.
Ejemplo de Código Intermedio
V. Optimización de Código
Esta fase de síntesis está presente en los compiladores
más sofisticados, y su propósito es producir un
código objeto más eficiente:

Reduciendo

el

espacio

ocupado

por

el

código

generado.
Aumentando la rapidez de ejecución.
Haciendo que se necesite menos memoria cuando se
ejecute.
Ejemplo Optimización de Código
VI. Generación de Código Final
En esta última fase de la compilación se genera el
código objeto (generalmente código de ensamblador o
código máquina) a partir del código intermedio.





Se asigna espacio de memoria para cada nombre del
programa fuente (variables, tipos, constantes, etc.).
Se traduce cada una de las instrucciones en código
intermedio a una secuencia de instrucciones en
código objeto que ejecuten la misma tarea.
Ejemplo Generación de Código
Ejemplo:
C := A + B

Código Fuente

Código Objeto Equivalente:

LOAD A
SUM B
STO C
Generación de Errores

Cada una de las fases del compilador
detecta unos tipos de errores
determinados.
Por lo tanto, la gestión de errores tiene

que

preverse

cada fase.

individualmente

en
Ejemplos de Generación de Errores
En el análisis léxico

Símbolos ajenos al
lenguaje

En el análisis sintáctico

expresiones mal
construidas

En el análisis semántico

variables sin declarar

Mais conteúdo relacionado

Mais procurados

Algebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datosAlgebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datos
JosepSalvadorSotoObregon
 
Gestion E/S Sistemas Operativos I
Gestion E/S Sistemas Operativos IGestion E/S Sistemas Operativos I
Gestion E/S Sistemas Operativos I
Juan Castro
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
perlallamas
 

Mais procurados (20)

Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Algebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datosAlgebra relacional fundamentos de base de datos
Algebra relacional fundamentos de base de datos
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y Procesador
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Gestion E/S Sistemas Operativos I
Gestion E/S Sistemas Operativos IGestion E/S Sistemas Operativos I
Gestion E/S Sistemas Operativos I
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERAS
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Prueba software orientado a objetos
Prueba software orientado a objetosPrueba software orientado a objetos
Prueba software orientado a objetos
 
Interfaz Gráfica de Usuario
Interfaz Gráfica de UsuarioInterfaz Gráfica de Usuario
Interfaz Gráfica de Usuario
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Estructura jerarquica
Estructura jerarquicaEstructura jerarquica
Estructura jerarquica
 

Semelhante a Etapas de compilacion

trabajo de tecnologia.pdf
trabajo de tecnologia.pdftrabajo de tecnologia.pdf
trabajo de tecnologia.pdf
joselumi
 
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustadaF004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
Laura Granja
 
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustadaF004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
Laura Granja
 

Semelhante a Etapas de compilacion (20)

B learnin
B learninB learnin
B learnin
 
computación e infomatica
computación e infomaticacomputación e infomatica
computación e infomatica
 
Practica adicional
Practica adicionalPractica adicional
Practica adicional
 
1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx
 
Unity pro pmanual
Unity pro pmanualUnity pro pmanual
Unity pro pmanual
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
trabajo de tecnologia..pdf
trabajo de tecnologia..pdftrabajo de tecnologia..pdf
trabajo de tecnologia..pdf
 
Informe tecnología
Informe tecnologíaInforme tecnología
Informe tecnología
 
trabajo de tecnología
trabajo de tecnología trabajo de tecnología
trabajo de tecnología
 
trabajo de tecnologia.pdf
trabajo de tecnologia.pdftrabajo de tecnologia.pdf
trabajo de tecnologia.pdf
 
Redes sociales
Redes socialesRedes sociales
Redes sociales
 
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustadaF004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
 
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustadaF004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
 
Fundamentos de python con orientación a objetos y basado en problemas con bas...
Fundamentos de python con orientación a objetos y basado en problemas con bas...Fundamentos de python con orientación a objetos y basado en problemas con bas...
Fundamentos de python con orientación a objetos y basado en problemas con bas...
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3
 
Actividad 2 de tecnologia.docx
Actividad 2 de tecnologia.docxActividad 2 de tecnologia.docx
Actividad 2 de tecnologia.docx
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustadaF004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
 
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustadaF004 p006-gfpi guia de aprendizaje redes sociales-ajustada
F004 p006-gfpi guia de aprendizaje redes sociales-ajustada
 

Mais de Pedro Antonio Villalta (Pavillalta)

Mais de Pedro Antonio Villalta (Pavillalta) (20)

Descargar Java JDK, Netbeans y Java ME para Desarrollo de Aplicaciones Moviles
Descargar Java JDK, Netbeans y Java ME para Desarrollo de Aplicaciones MovilesDescargar Java JDK, Netbeans y Java ME para Desarrollo de Aplicaciones Moviles
Descargar Java JDK, Netbeans y Java ME para Desarrollo de Aplicaciones Moviles
 
Primer Ejemplo de Proyecto en Android Studio
Primer Ejemplo de Proyecto en Android StudioPrimer Ejemplo de Proyecto en Android Studio
Primer Ejemplo de Proyecto en Android Studio
 
Herramientas para Desarrollo de Aplicaciones Moviles
Herramientas para Desarrollo de Aplicaciones MovilesHerramientas para Desarrollo de Aplicaciones Moviles
Herramientas para Desarrollo de Aplicaciones Moviles
 
Vtiger CRM, Software para Inteligencia de Negocios
Vtiger CRM, Software para Inteligencia de NegociosVtiger CRM, Software para Inteligencia de Negocios
Vtiger CRM, Software para Inteligencia de Negocios
 
Introduccion a Lenguaje HTML, Programacion Web
Introduccion a Lenguaje HTML, Programacion WebIntroduccion a Lenguaje HTML, Programacion Web
Introduccion a Lenguaje HTML, Programacion Web
 
32- Android, Desarrollo de Aplicaciones Moviles, Importancia del Mockup
32- Android, Desarrollo de Aplicaciones Moviles, Importancia del Mockup32- Android, Desarrollo de Aplicaciones Moviles, Importancia del Mockup
32- Android, Desarrollo de Aplicaciones Moviles, Importancia del Mockup
 
31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL
 
Controles y Objetos Android Studio (Actualizada 2016)
Controles y Objetos Android Studio (Actualizada 2016)Controles y Objetos Android Studio (Actualizada 2016)
Controles y Objetos Android Studio (Actualizada 2016)
 
Entorno-de-Desarrollo-Android-Studio
Entorno-de-Desarrollo-Android-StudioEntorno-de-Desarrollo-Android-Studio
Entorno-de-Desarrollo-Android-Studio
 
Instalacion-y-Configuracion-de-Android-Studio-con-Genymotion
Instalacion-y-Configuracion-de-Android-Studio-con-GenymotionInstalacion-y-Configuracion-de-Android-Studio-con-Genymotion
Instalacion-y-Configuracion-de-Android-Studio-con-Genymotion
 
Generalidades-de-Android-Estudio
Generalidades-de-Android-EstudioGeneralidades-de-Android-Estudio
Generalidades-de-Android-Estudio
 
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDKEntornos-de-Desarrollo-Eclipse-y-Android-SDK
Entornos-de-Desarrollo-Eclipse-y-Android-SDK
 
Conceptos y Generalidades de Android
Conceptos y Generalidades de AndroidConceptos y Generalidades de Android
Conceptos y Generalidades de Android
 
Capitulo I Cisco CCNA1: La vida en un mundo centrado en la red
Capitulo I Cisco CCNA1: La vida en un mundo centrado en la redCapitulo I Cisco CCNA1: La vida en un mundo centrado en la red
Capitulo I Cisco CCNA1: La vida en un mundo centrado en la red
 
Foro de Conceptos y Generalidades Sobre Redes de Computadoras TIS
Foro de Conceptos y Generalidades Sobre Redes de Computadoras TISForo de Conceptos y Generalidades Sobre Redes de Computadoras TIS
Foro de Conceptos y Generalidades Sobre Redes de Computadoras TIS
 
Cuestionario de Conceptos Básicos Sobre Redes de Computadoras ING
Cuestionario de Conceptos Básicos Sobre Redes de Computadoras INGCuestionario de Conceptos Básicos Sobre Redes de Computadoras ING
Cuestionario de Conceptos Básicos Sobre Redes de Computadoras ING
 
Capas del Modelo OSI y sus Funciones
Capas del Modelo OSI y sus FuncionesCapas del Modelo OSI y sus Funciones
Capas del Modelo OSI y sus Funciones
 
Cosas que solo pasan en El Salvador
Cosas que solo pasan en El SalvadorCosas que solo pasan en El Salvador
Cosas que solo pasan en El Salvador
 
Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
 
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot SuitePublicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
 

Último

RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Último (20)

1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 

Etapas de compilacion