SlideShare una empresa de Scribd logo
1 de 11
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 Compilacionguest9a91e2
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppInfomania pro
 
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 compiladorDunkherz
 
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-conceptosInfomania 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 devInfomania pro
 
Unidad 2 funciones
Unidad 2 funcionesUnidad 2 funciones
Unidad 2 funcionesDenisse C
 
Compilador Usando Jflex y Cup
Compilador Usando Jflex y CupCompilador Usando Jflex y Cup
Compilador Usando Jflex y Cupditopo
 
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 SystemEDUCULT
 
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 2014Klaus Bardenhagen
 
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 6Argentina
 
Imagebroschüre Move Productions
Imagebroschüre Move ProductionsImagebroschüre Move Productions
Imagebroschüre Move ProductionsMove 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 EuropaEDUCULT
 
FileMaker Go 12: Entwicklerhandbuch
FileMaker Go 12: EntwicklerhandbuchFileMaker Go 12: Entwicklerhandbuch
FileMaker Go 12: EntwicklerhandbuchFileMaker 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

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
Cap6CJAO
 
Cap5
Cap5Cap5
Cap5CJAO
 
Cap4
Cap4Cap4
Cap4CJAO
 
Cap3
Cap3Cap3
Cap3CJAO
 
Cap2
Cap2Cap2
Cap2CJAO
 
Cap1
Cap1Cap1
Cap1CJAO
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladoresCJAO
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladoresCJAO
 
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

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOBRIGIDATELLOLEONARDO
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
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 - 2024Juan Martín Martín
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdfMiNeyi1
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdfMiguelHuaman31
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 

Último (20)

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
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
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 

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