SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
COMPILADORES
NOMBRE: Santiago Andrade
FECHA: 20 de junio de 2019
TEMA: Flex y Bison
➢ Herramientas para la construcción de procesadores de lenguaje.
Estas son algunas de las herramientas disponibles que pueden utilizarse para la construcción de los Procesadores de
Lenguajes. Todas estas herramientas funcionan bajo Windows, aunque se puede utilizar, si se desea, cualquier otra
herramienta.
Suelen usarse herramientas de desarrollo de software convencionales ( control de traza, puntos de ruptura,
depuradores, etc..). Sin embargo se pueden añadir a estas herramientas otras más especializadas que se han
denominado con diferentes nombres : compilador de compiladores, generadores de compiladores, sistemas de
escritura de traductores:
• Generadores de analizadores léxicos: basada en el uso de expresiones regulares, generan automáticamente el
código fuente para el análisis léxico a partir de una especificación de los tokens. El generador es un autómata
finito. La más usada es lex, incorporada en el sistema operativo UNÍX. Existen versiones paraPC.
• Generadores de analizadores sintácticos: Construyen el código fuente del analizador sintáctico a partir de la
especificación de la gramática del lenguaje fuente. La más usada yacc incluida en UNÍX. Tambien existen
versiones para PC.
• Analizadores de gramáticas: dada una gramática especificada formalmente, verifican si es de un determinado
tipo o no. Normalmente se utilizan para verificar las gramáticas LL(k) yLR(k).
• Máquinas de traducción dirigida por sintaxis: Producen un conjunto de rutinas que recorren el árbol sintáctico
y generan código intermedio. Asocian una o más traducciones a cada nodosintáctico.
• Generadores automáticos de código: Trabajan con un conjunto de reglas que permiten la traducción del código
en lenguaje intermedio al lenguaje objeto. Las reglas suelen remplazar instrucciones de código intermedio por
patrones que contienen las instrucciones equivalentes de la máquina objeto.
• Analizadores de flujo: Suministran la información necesaria para realizar las optimizaciones decódigo.
➢ Aplicación de los lenguajes
Las técnicas empleadas en la construcción de traductores, compiladores e intérpretes pueden aplicarse en la
construcción de otras herramientas:
• Editores sensibles al contexto : Avisan al programador de posibles errores sintácticos cuando está escribiendo
un programa fuente. Actualmente es muy común editores con sintaxis resaltada con colores,
• Conversores de formato: Utilizan las técnicas de los traductores para convertir una descripción de ficheros en
otra.
• Preprocesadores: Toman como entrada un conjunto de instrucciones y generan código en un lenguaje de alto o
medio nivel.
• Formateadores de código fuente: Toman como entrada un código fuente y obtienen a la salida el mismo
mostrado de manera que se pueda seguir la estructura del programa.
• Generadores de código: Permiten desarrollar aplicaciones a partir de unas especificaciones muy compactas,
que pueden ser tratadas como un lenguaje de aplicación. Un caso particular son los generadores de pantallas.
• Verificación estática de programas: Leen el código fuente y lo analizan para descubrir errores potenciales sin
ejecutar dicho programa.
• Formateadores de texto: reciben como entrada un texto con indicaciones de cómo se desea la salida y generan
dicho texto formateado en un fichero, o para una determinada impresora. Pueden estar especializados para
fórmulas matemáticas, químicas, música, etc.
• Intérpretes de comandos de un sistema operativo: reciben órdenes del sistema operativo, las analizan y las
ejecutan ( Ej.: COMMAND.COM de MS-DOS).
• Construcción de entornos operativos: Caso particular del anterior en el cual las órdenes suelen recibirse de
forma gráfica ( Ej. WINDOWS).
• Intérpretes para consultar base de datos: reciben las consultas, las analizan y las ejecutan (EJ.: SQL).
• Compiladores de silicio: Utilizan las mismas técnicas de construcción de compiladores e intérpretes pero
implantadas en hardware.
• Procesamiento de lenguajes naturales: Aplican las técnicas de construcción de traductores a los lenguajes
naturales, permitiendo el análisis comprensión y traducción.
• Reconocimiento del habla: Se realiza un análisis de los sonidos para construirpalabras
➢ Reseña Histórica
➢ Diseño y construcción de un compilador.
➢
➢ Las herramientas Flex y Bison.
Estos nos ofrecen una gran cantidad de herramientas utilizando variables, operadores y librerías propias, como se
detallan algunas en la siguiente descripción.
➢ Que es Flex y Bison
Flex y Bison, un generador de analizadores léxicos el primero y un generador de analizadores gramaticales el segundo,
son dos herramientas útiles para crear programas que reaccionen a una entrada de datos con una estructura y un
lenguaje predeterminado, como por ejemplo, podemos crear compiladores, interpretes y analizadores de linea de
comando.
Flex es un una herramienta que permite generar analizadores léxicos. A partir de un conjunto de expresiones
regulares, Flex busca concordancias en un fichero de entrada y ejecuta acciones asociadas a estas expresiones.
Uno de los usos principales de Flex es como acompañante del analizador de gramáticas Bison (o de Yacc).
Los analizadores Bison necesitan una función llamda ‘yylex()’ para devolverles el siguiente token de la entrada.
Esa función devuelve el tipo del próximo token y además puede poner cualquier valor asociado en la variable
global yylval. Para usar Flex con Bison, normalmente se especifica la opción –d de Bison para que genera el
fichero ‘y.tab.h’ que contiene las definiciones de todos los ‘%tokens’ que aparecen el fuente Bison.
➢ Como se instala Flex y Bison
Primero se descarga el archivo .rar .
Creamos una carpeta en C que se llame DJGPP y descomprimimos los archivos contenidos en DJGPP ahí.
Luego debemos crear una carpeta en la unidad C:que se llame PRUEBAS.
En esta carpeta cargaremos todos nuestros proyectos de Flex y Bison.
El siguiente paso es configurar las rutas de Flex y Bison, esto lo hacemos entrando al Cmd
Colocándonos en la carpeta de pruebas con los comandos
Cd
Cd pruebas
Y escribimos estos comandos
cd PRUEBAS
set djgpp=c:djgppdjgpp.env
set path=c:djgppbin
Con esto ya tendremos configurados Flex y Bison para que el Cmd los reconozca como comandos validos (cabe destacar
que esta acción se tiene que repetir cada vez que se abre una nueva instancia del Cmd).
Esto es la parte de configuración, ahora lo que se tiene que hacer es cargar los archivos léxicos y sintácticos creados en
el bloc de notas.
Por lo que se ejecutan los comandos Flex "nombre_de_archivo.l"
Y Bison -dy "nombre_de_archivo.y"
Se crean los archivos lexyy.c, y.tab.c, y.tab.h
➢ Como se compila con Flex y Bison
Para compilar se realizan los siguientes pasos:
Escogemos una aplicación de consola y que sea un proyecto en c
Agregamos los archivos creados por el Flex y bison
Y compilamos
Se crea el ejecutable con el nombre del proyecto en este caso "pruebita.exe"
Y ejecutamos nuestro programa
➢ 2 Ejemplos de la creación de un compilador utilizando Flex yBison.
IDENTIFICADOR
CALCULADORA

Más contenido relacionado

La actualidad más candente

Trabajo compiladores ivan bolaños
Trabajo compiladores ivan bolañosTrabajo compiladores ivan bolaños
Trabajo compiladores ivan bolañosIván Bolaños
 
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
 
Clase 01
Clase 01Clase 01
Clase 01Tensor
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y BisonSteven Tabango
 
Taller compiladores conceptos
Taller compiladores conceptosTaller compiladores conceptos
Taller compiladores conceptosjuniortroya
 
Usando flex en Windows
Usando flex en WindowsUsando flex en Windows
Usando flex en WindowsMariano Rico
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacionTensor
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosDIEGO BAROJA
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskJohann Chambilla
 

La actualidad más candente (20)

Flex y bison
Flex y  bisonFlex y  bison
Flex y bison
 
Trabajo compiladores ivan bolaños
Trabajo compiladores ivan bolañosTrabajo compiladores ivan bolaños
Trabajo compiladores ivan bolaños
 
Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison
 
Clase 01
Clase 01Clase 01
Clase 01
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y Bison
 
Flex bison
Flex bisonFlex bison
Flex bison
 
INTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISONINTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISON
 
Flex ybison
Flex ybisonFlex ybison
Flex ybison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Taller compiladores conceptos
Taller compiladores conceptosTaller compiladores conceptos
Taller compiladores conceptos
 
Usando flex en Windows
Usando flex en WindowsUsando flex en Windows
Usando flex en Windows
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzados
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoresk
 

Similar a Flexybison

Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iRossana Sosa
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De CompiladorJoel Soto
 
Conceptos de compilador
Conceptos de compiladorConceptos de compilador
Conceptos de compiladorJoel Soto
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladoresbachispasaca
 
Conceptos Básicos acerca de Procesadores de Lenguajes
Conceptos Básicos acerca de Procesadores de LenguajesConceptos Básicos acerca de Procesadores de Lenguajes
Conceptos Básicos acerca de Procesadores de LenguajesGrace Laguna
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador FuncionamientoKriz Kozlov
 
C:\fakepath\compiladores
C:\fakepath\compiladoresC:\fakepath\compiladores
C:\fakepath\compiladorespaulina8
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDLACGP
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compiladorDLACGP
 

Similar a Flexybison (20)

Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Bison y flex
Bison y flexBison y flex
Bison y flex
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
H:\compiladores
H:\compiladoresH:\compiladores
H:\compiladores
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes i
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De Compilador
 
Conceptos de compilador
Conceptos de compiladorConceptos de compilador
Conceptos de compilador
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Conceptos Básicos acerca de Procesadores de Lenguajes
Conceptos Básicos acerca de Procesadores de LenguajesConceptos Básicos acerca de Procesadores de Lenguajes
Conceptos Básicos acerca de Procesadores de Lenguajes
 
Flex y Bison
Flex y BisonFlex y Bison
Flex y Bison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador Funcionamiento
 
Ac unidad 5
Ac unidad 5Ac unidad 5
Ac unidad 5
 
C:\fakepath\compiladores
C:\fakepath\compiladoresC:\fakepath\compiladores
C:\fakepath\compiladores
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compilador
 

Más de Santiago Andrade (20)

Taller Ataque Phishing
Taller Ataque PhishingTaller Ataque Phishing
Taller Ataque Phishing
 
Taller phishing
Taller phishingTaller phishing
Taller phishing
 
Instalación VB y maquinas virtuales
Instalación VB y maquinas virtualesInstalación VB y maquinas virtuales
Instalación VB y maquinas virtuales
 
Instalacion sony vegas
Instalacion sony vegasInstalacion sony vegas
Instalacion sony vegas
 
Practica forense
Practica forensePractica forense
Practica forense
 
Segmentacion de imagenes
Segmentacion de imagenesSegmentacion de imagenes
Segmentacion de imagenes
 
Principios informatica forence
Principios informatica forencePrincipios informatica forence
Principios informatica forence
 
Analisis forence
Analisis forenceAnalisis forence
Analisis forence
 
Practica 1 imagenes matlab
Practica 1 imagenes matlabPractica 1 imagenes matlab
Practica 1 imagenes matlab
 
Perito informatico
Perito informaticoPerito informatico
Perito informatico
 
Practica 6 matlab
Practica 6 matlabPractica 6 matlab
Practica 6 matlab
 
Practica 5 matlab
Practica 5 matlabPractica 5 matlab
Practica 5 matlab
 
Practica 4 matlab
Practica 4 matlabPractica 4 matlab
Practica 4 matlab
 
Practica 3 matlab
Practica 3 matlabPractica 3 matlab
Practica 3 matlab
 
Practica 2 matlab
Practica 2 matlabPractica 2 matlab
Practica 2 matlab
 
Instalacion matlab
Instalacion matlabInstalacion matlab
Instalacion matlab
 
Pasos para solicitar firmas digitales
Pasos para solicitar firmas digitalesPasos para solicitar firmas digitales
Pasos para solicitar firmas digitales
 
Taller12 firmas digitales
Taller12 firmas digitalesTaller12 firmas digitales
Taller12 firmas digitales
 
Responsabilidad civil
Responsabilidad civilResponsabilidad civil
Responsabilidad civil
 
Delitos vs contravenciones
Delitos vs contravencionesDelitos vs contravenciones
Delitos vs contravenciones
 

Último

¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...RichardRivas28
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfannavarrom
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 

Último (20)

¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 

Flexybison

  • 1. COMPILADORES NOMBRE: Santiago Andrade FECHA: 20 de junio de 2019 TEMA: Flex y Bison ➢ Herramientas para la construcción de procesadores de lenguaje. Estas son algunas de las herramientas disponibles que pueden utilizarse para la construcción de los Procesadores de Lenguajes. Todas estas herramientas funcionan bajo Windows, aunque se puede utilizar, si se desea, cualquier otra herramienta. Suelen usarse herramientas de desarrollo de software convencionales ( control de traza, puntos de ruptura, depuradores, etc..). Sin embargo se pueden añadir a estas herramientas otras más especializadas que se han denominado con diferentes nombres : compilador de compiladores, generadores de compiladores, sistemas de escritura de traductores: • Generadores de analizadores léxicos: basada en el uso de expresiones regulares, generan automáticamente el código fuente para el análisis léxico a partir de una especificación de los tokens. El generador es un autómata finito. La más usada es lex, incorporada en el sistema operativo UNÍX. Existen versiones paraPC. • Generadores de analizadores sintácticos: Construyen el código fuente del analizador sintáctico a partir de la especificación de la gramática del lenguaje fuente. La más usada yacc incluida en UNÍX. Tambien existen versiones para PC. • Analizadores de gramáticas: dada una gramática especificada formalmente, verifican si es de un determinado tipo o no. Normalmente se utilizan para verificar las gramáticas LL(k) yLR(k). • Máquinas de traducción dirigida por sintaxis: Producen un conjunto de rutinas que recorren el árbol sintáctico y generan código intermedio. Asocian una o más traducciones a cada nodosintáctico. • Generadores automáticos de código: Trabajan con un conjunto de reglas que permiten la traducción del código en lenguaje intermedio al lenguaje objeto. Las reglas suelen remplazar instrucciones de código intermedio por patrones que contienen las instrucciones equivalentes de la máquina objeto. • Analizadores de flujo: Suministran la información necesaria para realizar las optimizaciones decódigo.
  • 2. ➢ Aplicación de los lenguajes Las técnicas empleadas en la construcción de traductores, compiladores e intérpretes pueden aplicarse en la construcción de otras herramientas: • Editores sensibles al contexto : Avisan al programador de posibles errores sintácticos cuando está escribiendo un programa fuente. Actualmente es muy común editores con sintaxis resaltada con colores, • Conversores de formato: Utilizan las técnicas de los traductores para convertir una descripción de ficheros en otra. • Preprocesadores: Toman como entrada un conjunto de instrucciones y generan código en un lenguaje de alto o medio nivel. • Formateadores de código fuente: Toman como entrada un código fuente y obtienen a la salida el mismo mostrado de manera que se pueda seguir la estructura del programa. • Generadores de código: Permiten desarrollar aplicaciones a partir de unas especificaciones muy compactas, que pueden ser tratadas como un lenguaje de aplicación. Un caso particular son los generadores de pantallas. • Verificación estática de programas: Leen el código fuente y lo analizan para descubrir errores potenciales sin ejecutar dicho programa. • Formateadores de texto: reciben como entrada un texto con indicaciones de cómo se desea la salida y generan dicho texto formateado en un fichero, o para una determinada impresora. Pueden estar especializados para fórmulas matemáticas, químicas, música, etc. • Intérpretes de comandos de un sistema operativo: reciben órdenes del sistema operativo, las analizan y las ejecutan ( Ej.: COMMAND.COM de MS-DOS). • Construcción de entornos operativos: Caso particular del anterior en el cual las órdenes suelen recibirse de forma gráfica ( Ej. WINDOWS). • Intérpretes para consultar base de datos: reciben las consultas, las analizan y las ejecutan (EJ.: SQL). • Compiladores de silicio: Utilizan las mismas técnicas de construcción de compiladores e intérpretes pero implantadas en hardware. • Procesamiento de lenguajes naturales: Aplican las técnicas de construcción de traductores a los lenguajes naturales, permitiendo el análisis comprensión y traducción. • Reconocimiento del habla: Se realiza un análisis de los sonidos para construirpalabras ➢ Reseña Histórica
  • 3.
  • 4. ➢ Diseño y construcción de un compilador. ➢
  • 5. ➢ Las herramientas Flex y Bison. Estos nos ofrecen una gran cantidad de herramientas utilizando variables, operadores y librerías propias, como se detallan algunas en la siguiente descripción.
  • 6.
  • 7. ➢ Que es Flex y Bison Flex y Bison, un generador de analizadores léxicos el primero y un generador de analizadores gramaticales el segundo, son dos herramientas útiles para crear programas que reaccionen a una entrada de datos con una estructura y un lenguaje predeterminado, como por ejemplo, podemos crear compiladores, interpretes y analizadores de linea de comando. Flex es un una herramienta que permite generar analizadores léxicos. A partir de un conjunto de expresiones regulares, Flex busca concordancias en un fichero de entrada y ejecuta acciones asociadas a estas expresiones. Uno de los usos principales de Flex es como acompañante del analizador de gramáticas Bison (o de Yacc). Los analizadores Bison necesitan una función llamda ‘yylex()’ para devolverles el siguiente token de la entrada. Esa función devuelve el tipo del próximo token y además puede poner cualquier valor asociado en la variable global yylval. Para usar Flex con Bison, normalmente se especifica la opción –d de Bison para que genera el fichero ‘y.tab.h’ que contiene las definiciones de todos los ‘%tokens’ que aparecen el fuente Bison.
  • 8. ➢ Como se instala Flex y Bison Primero se descarga el archivo .rar . Creamos una carpeta en C que se llame DJGPP y descomprimimos los archivos contenidos en DJGPP ahí. Luego debemos crear una carpeta en la unidad C:que se llame PRUEBAS. En esta carpeta cargaremos todos nuestros proyectos de Flex y Bison. El siguiente paso es configurar las rutas de Flex y Bison, esto lo hacemos entrando al Cmd Colocándonos en la carpeta de pruebas con los comandos Cd Cd pruebas Y escribimos estos comandos cd PRUEBAS set djgpp=c:djgppdjgpp.env set path=c:djgppbin
  • 9. Con esto ya tendremos configurados Flex y Bison para que el Cmd los reconozca como comandos validos (cabe destacar que esta acción se tiene que repetir cada vez que se abre una nueva instancia del Cmd). Esto es la parte de configuración, ahora lo que se tiene que hacer es cargar los archivos léxicos y sintácticos creados en el bloc de notas. Por lo que se ejecutan los comandos Flex "nombre_de_archivo.l" Y Bison -dy "nombre_de_archivo.y" Se crean los archivos lexyy.c, y.tab.c, y.tab.h
  • 10. ➢ Como se compila con Flex y Bison Para compilar se realizan los siguientes pasos: Escogemos una aplicación de consola y que sea un proyecto en c Agregamos los archivos creados por el Flex y bison Y compilamos Se crea el ejecutable con el nombre del proyecto en este caso "pruebita.exe"
  • 11. Y ejecutamos nuestro programa ➢ 2 Ejemplos de la creación de un compilador utilizando Flex yBison. IDENTIFICADOR CALCULADORA