SlideShare una empresa de Scribd logo
Herramientas de Análisis de Programas Fuente Capítulo 3 Materia: Compiladores Docente: Ing. Carlos J. Archondo O. 1
Introducción Muchas herramientas de software que manipulan programas fuente realizan primero algún tipo de análisis.  Algunos ejemplos de tales herramientas son: Editores de estructuras. Impresoras estéticas. Verificadores estáticos. Intérpretes. 2 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
Editores de Estructuras ,[object Object]
El editor de estructuras no sólo realiza las funciones de creación y modificación de textos de un editor de textos ordinario, sino que también analiza el texto del programa imponiendo al programa fuente una estructura jerárquica apropiada.
De esa manera, el editor de estructuras puede realizar tareas adicionales útiles para la preparación de programas.
Por ejemplo:Puede comprobar si la entrada está formada correctamente. Puede proporcionar palabras clave de manera automática. Puede saltar desde un begin o un paréntesis izquierdo hasta su correspondiente end o paréntesis derecho.  Además, la salida de tal editor suele ser similar a la salida de la fase del análisis de un compilador. 3 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
Impresoras Estéticas ,[object Object]
Por ejemplo:Los comentarios pueden aparecer con un tipo de letra especial. Las proposiciones pueden aparecer con una indentación proporcional a la profundidad de su anidamiento en la organización jerárquica de las proposiciones. 4 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
Verificadores Estáticos Un verificador estático lee un programa, lo analiza e intenta descubrir errores potenciales sin ejecutar el programa.  La parte del análisis es similar a la que se encuentra en los compiladores de optimación.  Así un verificador estático puede detectar si hay partes de un programa que nunca se podrán ejecutar o si cierta variable se usa antes de ser definida.  Además, puede detectar errores de lógica como intentar utilizar una variable real como apuntador, empleando las técnicas de verificación de tipos. 5 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
Intérpretes ,[object Object]
Para una proposición de asignación, por ejemplo, un intérprete podría:Construir un árbol y después efectuar las operaciones de los nodos conforme “recorre” el árbol.  En la raíz descubriría que tiene que realizar una asignación, y llamaría a una rutina para evaluar la expresión siguiente y después almacenaría el valor resultante en la localidad de memoria asignada con el identificador posición.  En el hijo siguiente de la raíz, la rutina descubriría que tiene que calcular la suma de dos expresiones.  Se llamaría a si misma de manera recursiva para calcular el valor de la variable inicial. 6 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.

Más contenido relacionado

La actualidad más candente

Proceso de Compilacion
Proceso de CompilacionProceso de Compilacion
Proceso de Compilacion
guest9a91e2
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
Infomania pro
 
Estructura basica para c++
Estructura basica para c++Estructura basica para c++
Estructura basica para c++
claravianeybadillodelangel
 
Lenguaje de programacion c++ basico 2da parte instalación del compilador
Lenguaje de programacion c++ basico 2da parte instalación del compiladorLenguaje de programacion c++ basico 2da parte instalación del compilador
Lenguaje de programacion c++ basico 2da parte instalación del compilador
Dunkherz
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
UVM
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
Infomania pro
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De CompiladorBigbossH
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2camnav
 
Actividad 3
Actividad 3Actividad 3
Actividad 3maryr_
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
Infomania pro
 
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
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini dev
Infomania pro
 
Pascal
PascalPascal
Pascal
parada137
 
Unidad 2 funciones
Unidad 2 funcionesUnidad 2 funciones
Unidad 2 funcionesDenisse C
 
C++
C++C++
Estructura básica de pascal
Estructura básica de pascalEstructura básica de pascal
Compilador Usando Jflex y Cup
Compilador Usando Jflex y CupCompilador Usando Jflex y Cup
Compilador Usando Jflex y Cup
ditopo
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con CupLAUNASA NOVENO B
 
Estructura de un rograma
Estructura de un rogramaEstructura de un rograma
Estructura de un rogramaivanjvic
 

La actualidad más candente (20)

Proceso de Compilacion
Proceso de CompilacionProceso de Compilacion
Proceso de Compilacion
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
 
Estructura basica para c++
Estructura basica para c++Estructura basica para c++
Estructura basica para c++
 
Lenguaje de programacion c++ basico 2da parte instalación del compilador
Lenguaje de programacion c++ basico 2da parte instalación del compiladorLenguaje de programacion c++ basico 2da parte instalación del compilador
Lenguaje de programacion c++ basico 2da parte instalación del compilador
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De Compilador
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini dev
 
Pascal
PascalPascal
Pascal
 
Unidad 2 funciones
Unidad 2 funcionesUnidad 2 funciones
Unidad 2 funciones
 
C++
C++C++
C++
 
Estructura básica de pascal
Estructura básica de pascalEstructura básica de pascal
Estructura básica de pascal
 
Compilador Usando Jflex y Cup
Compilador Usando Jflex y CupCompilador Usando Jflex y Cup
Compilador Usando Jflex y Cup
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con Cup
 
Estructura de un rograma
Estructura de un rogramaEstructura de un rograma
Estructura de un rograma
 

Destacado

Vorarlberg Osterreich Jantjebeton
Vorarlberg Osterreich JantjebetonVorarlberg Osterreich Jantjebeton
Vorarlberg Osterreich JantjebetonBeatris Lopes
 
Pacie
PaciePacie
PacieCJAO
 
Arts Education Monitoring System
Arts Education Monitoring SystemArts Education Monitoring System
Arts Education Monitoring System
EDUCULT
 
Austauschschüler aus Taiwan suchen Gastfamilie, ab Sommer 2014
Austauschschüler aus Taiwan suchen Gastfamilie, ab Sommer 2014Austauschschüler aus Taiwan suchen Gastfamilie, ab Sommer 2014
Austauschschüler aus Taiwan suchen Gastfamilie, ab Sommer 2014
Klaus Bardenhagen
 
Sistema nervioso
Sistema nerviosoSistema nervioso
Sistema nervioso
Jose Manue Gomez
 
El lideratge en la cooperació escolar
El lideratge en la cooperació escolarEl lideratge en la cooperació escolar
El lideratge en la cooperació escolarElisia fs
 
Proyecto Medio ambiente.ESB 6
Proyecto Medio ambiente.ESB 6Proyecto Medio ambiente.ESB 6
Proyecto Medio ambiente.ESB 6
Argentina
 
Imagebroschüre Move Productions
Imagebroschüre Move ProductionsImagebroschüre Move Productions
Imagebroschüre Move Productions
Move Productions
 
Sampurna Arogyasathi Namasmarn Marathi Bestseller Dr. Shriniwas Kashalikar
Sampurna Arogyasathi Namasmarn Marathi Bestseller Dr. Shriniwas KashalikarSampurna Arogyasathi Namasmarn Marathi Bestseller Dr. Shriniwas Kashalikar
Sampurna Arogyasathi Namasmarn Marathi Bestseller Dr. Shriniwas Kashalikardrsolapurkar
 
Aprendizajecooperativo 130730132401-phpapp02 (1)
Aprendizajecooperativo 130730132401-phpapp02 (1)Aprendizajecooperativo 130730132401-phpapp02 (1)
Aprendizajecooperativo 130730132401-phpapp02 (1)E Hernandez
 
Kulturelle Bildung in Europa
Kulturelle Bildung in EuropaKulturelle Bildung in Europa
Kulturelle Bildung in Europa
EDUCULT
 
FileMaker Go 12: Entwicklerhandbuch
FileMaker Go 12: EntwicklerhandbuchFileMaker Go 12: Entwicklerhandbuch
FileMaker Go 12: Entwicklerhandbuch
FileMaker GmbH
 

Destacado (16)

Vorarlberg Osterreich Jantjebeton
Vorarlberg Osterreich JantjebetonVorarlberg Osterreich Jantjebeton
Vorarlberg Osterreich Jantjebeton
 
Pacie
PaciePacie
Pacie
 
Ifes Ergebnisse
Ifes ErgebnisseIfes Ergebnisse
Ifes Ergebnisse
 
Arts Education Monitoring System
Arts Education Monitoring SystemArts Education Monitoring System
Arts Education Monitoring System
 
Austauschschüler aus Taiwan suchen Gastfamilie, ab Sommer 2014
Austauschschüler aus Taiwan suchen Gastfamilie, ab Sommer 2014Austauschschüler aus Taiwan suchen Gastfamilie, ab Sommer 2014
Austauschschüler aus Taiwan suchen Gastfamilie, ab Sommer 2014
 
Sistema nervioso
Sistema nerviosoSistema nervioso
Sistema nervioso
 
El lideratge en la cooperació escolar
El lideratge en la cooperació escolarEl lideratge en la cooperació escolar
El lideratge en la cooperació escolar
 
Proyecto Medio ambiente.ESB 6
Proyecto Medio ambiente.ESB 6Proyecto Medio ambiente.ESB 6
Proyecto Medio ambiente.ESB 6
 
Imagebroschüre Move Productions
Imagebroschüre Move ProductionsImagebroschüre Move Productions
Imagebroschüre Move Productions
 
Sampurna Arogyasathi Namasmarn Marathi Bestseller Dr. Shriniwas Kashalikar
Sampurna Arogyasathi Namasmarn Marathi Bestseller Dr. Shriniwas KashalikarSampurna Arogyasathi Namasmarn Marathi Bestseller Dr. Shriniwas Kashalikar
Sampurna Arogyasathi Namasmarn Marathi Bestseller Dr. Shriniwas Kashalikar
 
Fotoprotokoll
FotoprotokollFotoprotokoll
Fotoprotokoll
 
Tema 7
Tema 7Tema 7
Tema 7
 
Aprendizajecooperativo 130730132401-phpapp02 (1)
Aprendizajecooperativo 130730132401-phpapp02 (1)Aprendizajecooperativo 130730132401-phpapp02 (1)
Aprendizajecooperativo 130730132401-phpapp02 (1)
 
MISIONEROS
MISIONEROSMISIONEROS
MISIONEROS
 
Kulturelle Bildung in Europa
Kulturelle Bildung in EuropaKulturelle Bildung in Europa
Kulturelle Bildung in Europa
 
FileMaker Go 12: Entwicklerhandbuch
FileMaker Go 12: EntwicklerhandbuchFileMaker Go 12: Entwicklerhandbuch
FileMaker Go 12: Entwicklerhandbuch
 

Similar a Cap3

Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison
Raul Hernandez Mayo
 
Compiladores (1) pedro vasques
Compiladores (1) pedro vasquesCompiladores (1) pedro vasques
Compiladores (1) pedro vasques
Pitter Antony Vasquez Castellanos
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
CJAO
 
Cap4
Cap4Cap4
Cap4CJAO
 
Compiladores
CompiladoresCompiladores
Compiladores
Calzada Meza
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2perlallamas
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iRossana Sosa
 
Programa
ProgramaPrograma
Programa
Jesse Sobenis
 
Documeto compilardorcontadorletras
Documeto compilardorcontadorletrasDocumeto compilardorcontadorletras
Documeto compilardorcontadorletras
Sebastian Ocampo Vélez
 
Compiladores Ex..ppt
Compiladores Ex..pptCompiladores Ex..ppt
Compiladores Ex..ppt
Marko Zapata
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
Kudos S.A.S
 
TEMA-2 Estructura de un programa en C.pptx
TEMA-2 Estructura de un programa en C.pptxTEMA-2 Estructura de un programa en C.pptx
TEMA-2 Estructura de un programa en C.pptx
VctorEmmanuelEspinoM
 
Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Lesly Gonzalez
 
Compiladores
CompiladoresCompiladores
Compiladores
Chocolatisima Cruperz
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicosdiana8320
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++
oscar020615
 
Tutorial de visual_c_
Tutorial de visual_c_Tutorial de visual_c_
Tutorial de visual_c_
oscar020615
 

Similar a Cap3 (20)

Herramientas de software
Herramientas de softwareHerramientas de software
Herramientas de software
 
Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison
 
Compiladores (1) pedro vasques
Compiladores (1) pedro vasquesCompiladores (1) pedro vasques
Compiladores (1) pedro vasques
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
 
Cap4
Cap4Cap4
Cap4
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes i
 
Programa
ProgramaPrograma
Programa
 
Documeto compilardorcontadorletras
Documeto compilardorcontadorletrasDocumeto compilardorcontadorletras
Documeto compilardorcontadorletras
 
Compiladores Ex..ppt
Compiladores Ex..pptCompiladores Ex..ppt
Compiladores Ex..ppt
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Ikgi
IkgiIkgi
Ikgi
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
TEMA-2 Estructura de un programa en C.pptx
TEMA-2 Estructura de un programa en C.pptxTEMA-2 Estructura de un programa en C.pptx
TEMA-2 Estructura de un programa en C.pptx
 
Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicos
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++
 
Tutorial de visual_c_
Tutorial de visual_c_Tutorial de visual_c_
Tutorial de visual_c_
 

Más de CJAO

Cap6
Cap6Cap6
Cap6
CJAO
 
Cap5
Cap5Cap5
Cap5
CJAO
 
Cap4
Cap4Cap4
Cap4
CJAO
 
Cap3
Cap3Cap3
Cap3
CJAO
 
Cap2
Cap2Cap2
Cap2
CJAO
 
Cap1
Cap1Cap1
Cap1
CJAO
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladores
CJAO
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
CJAO
 
Cap6
Cap6Cap6
Cap6CJAO
 
Cap5
Cap5Cap5
Cap5CJAO
 
Cap4
Cap4Cap4
Cap4CJAO
 
Cap3
Cap3Cap3
Cap3CJAO
 
Cap0
Cap0Cap0
Cap0CJAO
 
Cap5
Cap5Cap5
Cap5CJAO
 
Cap4
Cap4Cap4
Cap4CJAO
 
Cap3
Cap3Cap3
Cap3CJAO
 
Cap2
Cap2Cap2
Cap2CJAO
 
Cap1
Cap1Cap1
Cap1CJAO
 
Cap6
Cap6Cap6
Cap6CJAO
 
Cap10
Cap10Cap10
Cap10CJAO
 

Más de CJAO (20)

Cap6
Cap6Cap6
Cap6
 
Cap5
Cap5Cap5
Cap5
 
Cap4
Cap4Cap4
Cap4
 
Cap3
Cap3Cap3
Cap3
 
Cap2
Cap2Cap2
Cap2
 
Cap1
Cap1Cap1
Cap1
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladores
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
 
Cap6
Cap6Cap6
Cap6
 
Cap5
Cap5Cap5
Cap5
 
Cap4
Cap4Cap4
Cap4
 
Cap3
Cap3Cap3
Cap3
 
Cap0
Cap0Cap0
Cap0
 
Cap5
Cap5Cap5
Cap5
 
Cap4
Cap4Cap4
Cap4
 
Cap3
Cap3Cap3
Cap3
 
Cap2
Cap2Cap2
Cap2
 
Cap1
Cap1Cap1
Cap1
 
Cap6
Cap6Cap6
Cap6
 
Cap10
Cap10Cap10
Cap10
 

Último

El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
jecgjv
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
Armando920824
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
María Sánchez González (@cibermarikiya)
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
el pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdfel pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdf
almitamtz00
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024
IES Vicent Andres Estelles
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
recursos naturales en chile quinto básico .pptx
recursos naturales en chile quinto básico .pptxrecursos naturales en chile quinto básico .pptx
recursos naturales en chile quinto básico .pptx
Waleska Chaparro
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Presidencias radicales (1916 – 1930) (1) (1).pdf
Presidencias radicales (1916 – 1930) (1) (1).pdfPresidencias radicales (1916 – 1930) (1) (1).pdf
Presidencias radicales (1916 – 1930) (1) (1).pdf
MARIANA110300
 
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIAFUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
ElenaGallardoPals
 
JOSÉ MARÍA ARGUEDAS cuentos breves para secundaria
JOSÉ MARÍA ARGUEDAS cuentos breves para secundariaJOSÉ MARÍA ARGUEDAS cuentos breves para secundaria
JOSÉ MARÍA ARGUEDAS cuentos breves para secundaria
alegrialesliemarlene
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
Osiris Urbano
 

Último (20)

El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
el pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdfel pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdf
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
recursos naturales en chile quinto básico .pptx
recursos naturales en chile quinto básico .pptxrecursos naturales en chile quinto básico .pptx
recursos naturales en chile quinto básico .pptx
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Presidencias radicales (1916 – 1930) (1) (1).pdf
Presidencias radicales (1916 – 1930) (1) (1).pdfPresidencias radicales (1916 – 1930) (1) (1).pdf
Presidencias radicales (1916 – 1930) (1) (1).pdf
 
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIAFUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
 
JOSÉ MARÍA ARGUEDAS cuentos breves para secundaria
JOSÉ MARÍA ARGUEDAS cuentos breves para secundariaJOSÉ MARÍA ARGUEDAS cuentos breves para secundaria
JOSÉ MARÍA ARGUEDAS cuentos breves para secundaria
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
 

Cap3

  • 1. Herramientas de Análisis de Programas Fuente Capítulo 3 Materia: Compiladores Docente: Ing. Carlos J. Archondo O. 1
  • 2. Introducción Muchas herramientas de software que manipulan programas fuente realizan primero algún tipo de análisis. Algunos ejemplos de tales herramientas son: Editores de estructuras. Impresoras estéticas. Verificadores estáticos. Intérpretes. 2 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
  • 3.
  • 4. El editor de estructuras no sólo realiza las funciones de creación y modificación de textos de un editor de textos ordinario, sino que también analiza el texto del programa imponiendo al programa fuente una estructura jerárquica apropiada.
  • 5. De esa manera, el editor de estructuras puede realizar tareas adicionales útiles para la preparación de programas.
  • 6. Por ejemplo:Puede comprobar si la entrada está formada correctamente. Puede proporcionar palabras clave de manera automática. Puede saltar desde un begin o un paréntesis izquierdo hasta su correspondiente end o paréntesis derecho. Además, la salida de tal editor suele ser similar a la salida de la fase del análisis de un compilador. 3 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
  • 7.
  • 8. Por ejemplo:Los comentarios pueden aparecer con un tipo de letra especial. Las proposiciones pueden aparecer con una indentación proporcional a la profundidad de su anidamiento en la organización jerárquica de las proposiciones. 4 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
  • 9. Verificadores Estáticos Un verificador estático lee un programa, lo analiza e intenta descubrir errores potenciales sin ejecutar el programa. La parte del análisis es similar a la que se encuentra en los compiladores de optimación. Así un verificador estático puede detectar si hay partes de un programa que nunca se podrán ejecutar o si cierta variable se usa antes de ser definida. Además, puede detectar errores de lógica como intentar utilizar una variable real como apuntador, empleando las técnicas de verificación de tipos. 5 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
  • 10.
  • 11. Para una proposición de asignación, por ejemplo, un intérprete podría:Construir un árbol y después efectuar las operaciones de los nodos conforme “recorre” el árbol. En la raíz descubriría que tiene que realizar una asignación, y llamaría a una rutina para evaluar la expresión siguiente y después almacenaría el valor resultante en la localidad de memoria asignada con el identificador posición. En el hijo siguiente de la raíz, la rutina descubriría que tiene que calcular la suma de dos expresiones. Se llamaría a si misma de manera recursiva para calcular el valor de la variable inicial. 6 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
  • 12. Flex:Generador de Analizadores Léxicos Materia: Compiladores Docente: Ing. Carlos J. Archondo O. 7 Flex es una herramienta para generar scanners: Programas que reconocen patrones léxicos en un texto. Flex lee los ficheros de entrada dados, o la entrada estándar si no se le ha indicado ningún nombre de fichero, con la descripción de un escáner a generar. La descripción se encuentra en forma de parejas de expresiones regulares y código C, denominadas reglas. Flex genera como salida un fichero fuente en C, `lex.yy.c', que define una rutina `yylex()'. Este fichero se compila y se enlaza con la librería `-lfl' para producir un ejecutable. Cuando se arranca el fichero ejecutable, este analiza su entrada en busca de casos de las expresiones regulares. Siempre que encuentra uno, ejecuta el código C correspondiente.
  • 13. Flex:Ejemplo La siguiente entrada de Flex especifica un escáner que siempre que encuentre la cadena "username" la reemplazará por el nombre de entrada al sistema del usuario: %% usernameprintf( "%s", getlogin() ); Por defecto, cualquier texto que no reconozca el analizador léxico de Flex se copia a la salida, así que el efecto neto de este escáner es copiar su fichero de entrada a la salida con cada aparición de "username" expandida. En esta entrada, hay solamente una regla: "username" es el patrón y el "printf" es la acción. El "%%" marca el comienzo de las reglas. 8 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
  • 14. Flex:Formato del Fichero de Entrada El fichero de entrada de Flex está compuesto de tres secciones, separadas por una línea donde aparece únicamente un `%%' en esta: definiciones %% reglas %% código de usuario Definiciones: Contiene declaraciones de definiciones de nombres sencillas para simplificar la especificación del escáner, y declaraciones de condiciones de arranque. Reglas: Contiene una serie de reglas de la forma: patrón acción Código de usuario: Simplemente se copia a `lex.yy.c' literalmente. Esta sección se utiliza para rutinas de complemento que llaman al escáner o son llamadas por este. 9 Materia: Compiladores Docente: Ing. Carlos J. Archondo O.
  • 15. Interacción con el Usuario #include "stdio.h“ #include "conio.h“ #include "iostream.h“ voidmain(void) { int variable,op,op2; char comentario[20],posmem[5]; clrscr(); cout <<"Compilador manual de Basic de 4 lineas para suma o resta"; cout<<"Que instruccion: 1.PRINT 2.INPUT: "; cin>>variable; if (variable==1){ cout<<"Que desea imprimir: 1.Texto 2.Variable:"; cin>>op; if (op==1){ cout<<"Escriba el texto:"; gets(comentario); gotoxy(30,10);cout<<"EAP "; gotoxy(34,10);cout<<comentario; gotoxy(50,10);cout<<"PRINT '"<<comentario<<"'"; } if (op==2){ cout<<"Que variable: 1.AX 2.Memoria:"; cin>>op2; if (op2==1){ gotoxy(30,10);cout<<"EAP "; gotoxy(50,10);cout<<"PRINT A"; } if (op2==2){ cout<<"Que posicion de memoria: "; gets(posmem); gotoxy(30,10);cout<<"MOV AX,"<<posmem; gotoxy(30,11);cout<<"EAP"; gotoxy(50,10);cout<<"PRINT B"; } } } if (variable==2){ gotoxy(30,10);cout<<"LDT"; gotoxy(30,11);cout<<"MOV 1A,AX"; gotoxy(50,10);cout<<"INPUT A"; } getch(); } Existen algunos compiladores como el DFD, que generan código por interacción con el usuario. El programa del ejemplo que vemos, es un sencillo generador de código de Assembler y Basic, ambos generados a la vez por interacción con el usuario. 10 Materia: Compiladores Docente: Ing. Carlos J. Archondo O. Este programa servirá como base para diseñar un compilador
  • 16. Pantallas Generadas por el Ejemplo El modo de encarar los programas es muy diferente entre el Basic y el Assembler, por lo que se deberá ver en detalle su formato. Como se puede apreciar el crear un compilador no es tarea sencilla, pero siguiendo los pasos de los estudios realizados por los expertos programadores se puede llegar a diseñarlos. 11 Materia: Compiladores Docente: Ing. Carlos J. Archondo O. Assembler Basic