SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
PONTIFICIA UIVERSIDAD CATÓLICA DEL ECUADOR
SEDE IBARRA
1. DATOS INFORMATIVOS
1.1 Nombre: Luis Viteri, Andrés Brusil
1.2 Carrera: Sistemas
1.3 Nivel: 5to
1.4 Materia: Compiladores
1.5 Tema: Flex y Bison Ejercicio
1.6 Fecha: 24/07/16
2. DESCRIPCION
Herramientas para la construcción de procesadores de lenguaje.
A continuación se muestran algunas de las herramientas disponibles que pueden utilizarse para la
construcción de Procesadores de Lenguaje.
Aplicación de los lenguajes:
1) Reseña Histórica
1940’s:
– Primeros ordenadores.
– Programación directa en código máquina.
– Nace el ensamblador (traducido manualmente)
– Se automatiza la etapa de ensamblado
1950’s
– (1950) John Backus dirige en IBM un proyecto de lenguaje algebraico
– (1954-1958) Nace el FORTRAN (FORmulae TRANslator)
– Primer compilador de FORTRAN para IBM modelo 704
1950’s (finales):
– F.L. Bauer (Univ. Munich) dirige un proyecto de lenguaje formal
– Se crea un comité conjunto con la Association for Computing Machinery en el que participa
Backus
– Se define IAL (International Algebraic Language)
– Posteriormente se denomina ALGOL 58 (ALGOrithmic Language)
Características de ALGOL 58
– Definición de la notación BNF (Backus-Naur Form)
– Declaración de tipos de variables
– Estructura modular
– Funciones recursivas
– Paso de parámetros por valor o por nombre
– Precursor de Pascal, Ada o Modula
1970’s:
– Se estudian las gramáticas LR
– Se definen los métodos de análisis ascendente SLR y LALR
– Se crean numerosas herramientas de ayuda al diseño de compiladores
– A mediados de la década aparecen las herramientas lex y yacc que se convierten en
estándares de facto al distribuirse con UNIX.
– La Free Software Fundation distribuye estas herramientas bajo los nombres de flex y bison
Generación de código:
– Inicialmente la gestión de la memoria era estática
– Cuando aparecen las funciones recursivas se desarrolla la pila como forma de gestionar
la memoria
– La gestión de memoria dinámica conduce a la definición del montículo (heap) como zona
de gestión de esta memoria
– Surgen nuevos problemas como las referencias pérdidas o la recogida de basura
Últimos avances:
– Optimización de código
– Máquinas virtuales y auge de los lenguajes interpretados
2) Diseño y construcción de un compilador
Análisis léxico
Objetivo:
– Leer caracteres e identificar componentes léxicos (tokens)
– Filtrar comentarios
– Detectar errores léxicos
Ejemplo:
Análisis Sintáctico
Objetivo:
– Verificar estructuras gramaticales
– Detectar errores de sintaxis
Especificación:
– Gramáticas libres de contexto
Ejemplo:
Análisis Semántico
Objetivo:
– Verificar restricciones semánticas (predefinición de variables, consistencia de tipos,
llamadas a funciones)
– Generar un Árbol de Sintaxis Abstracta
Especificación:
– Gramáticas atribuidas
Ejemplo:
Las herramientas Flex y Bison
3) Que es flex y Bison
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. Es compatible casi al 100% con Lex, una herramienta clásica de
Unix para la generación de analizadores léxicos, pero es un desarrollo diferente realizado por GNU
bajo licencia GPL.
Bison es un generador de analizadores sintácticos de propósito general que convierte una
descripción para una gramática independiente del contexto (en realidad de una subclase de éstas,
las LALR) en un programa en C que analiza esa gramática. Es compatible al 100% con Yacc, una
herramienta clásica de Unix para la generación de analizadores léxicos, pero es un desarrollo
diferente realizado por GNU bajo licencia GPL. Todas la gramáticas escritas apropiadamente para
Yacc deberían funcionar con Bison sin ningún cambio. Usándolo junto a Flex esta herramienta
permite construir compiladores de lenguajes.
4) Como se instala Flex y Bison
1) Es necesario obtener el software descargando la versión que necesitamos de las
páginas oficiales
http://gnuwin32.sourceforge.net/packages/flex.htm
2) Instalar el software en la unidad C: (para explicar a partir del punto 4 se tendrá como
hecho que flex y bison han sido instalados en la ruta: C:GnuWin32 donde contiene una
subcarpeta llamada bin donde se encuentran los programas respectivos)
3) Flex y bison son aplicaciones de consola, por lo que se deberá entrar al Símbolo del
sistema y tipear líneas de comando para ejecutar Flex.
4) 4. Si deseas que flex y bison se integren al conjunto de variables del entorno (esto te va
a permitir llamar a flex/bison desde cualquier ubicación en la línea de comandos) debes
hacer lo siguiente:
a. Clic derecho en “Mi PC”.
b. Selecciona “Propiedades”
c. Clic en la pestaña “Opciones Avanzadas”
d. Presiona el botón “Variables de entorno”
e. En la ventana de variables de entorno, ubicarse en la sección “Variables del
sistema”
f. luego haz clic en PATH y luego en el botón “Modificar” (si no está hacer clic en
“Nueva” y agregar PATH)
g. En la nueva ventana, escribir la ruta completa al directorio “bin” de la aplicación
flex/bison. Si existe otro valor, separarlos con comas.
h. Aceptar los cambios y luego reiniciar el sistema operativo.
Capturas de pantalla de la instalación
Herramientas necesarias para la ejecución del proyecto
 flex-2.5.4a-1
 bison-2.4.1
 mingw-get-inst-20120426
DESCARGAS DE LAS HERRAMIENTAS
Descargamos la herramienta Flex de la siguiente página
http://gnuwin32.sourceforge.net/packages/flex.htm
Descargamos la herramienta Bison de la siguiente página:
http://gnuwin32.sourceforge.net/packages/bison.htm
Descargamos el MinGw de la siguiente página:
http://www.4shared.com/file/ypK4312i/mingw-get-inst-
20120426.htm?locale=es&sop=true
Como podemos observar aquí tenemos los tres archivos necesarios
INSTALACIÓN DE LAS HERRAMIENTAS
1.- Flex
Primero debemos instalar la herramienta flex
2.-Bison
Instalamos la herramienta Bison
Comprobamos si está instalado
1.1 3.- Mingw
Instalamos la herramienta mingw
Configuración de variables de entorno
Editamos la variable path
Al final colocamos un punto y coma (;) y pegamos esto: C:GnuWin32bin escribimos
otraves el punto y coma (;) y pegamos esto : C:MinGWbin de esta menera:
Aceptamos todo y salimos, para finalizar nos den quedar estas dos carpetas
5) Como se compila con Flex y Bison
Luego de escribir las especificaciones de flex y bison realizar lo siguiente.
 Si se desea invocar a flex:
o Por ejemplo, si se tiene un archivo de especificación de Flex llamado prueba.l dentro
de una carpeta “archivos” tipear lo siguiente C:archivos>flex prueba.l
o Luego presionar ENTER
o Se habrá generado un archivo de nombre lex.yy.c dentro de la carpeta donde se
encuentra el archivo prueba.l
 Para invocar a Bison en conjunción con flex realizar lo siguiente:
o Por ejemplo, si se tiene un archivo de especificación de Bison y Flex llamado
prueba.y y prueba.l respectivamente dentro de una carpeta “archivos” tipear lo
siguiente
o C:archivos>bison –d prueba.y
o C:archivos>flex prueba.l
o Luego al presionar ENTER se generarán tres archivos para su posteriorcompilación:
prueba.tab.h, prueba.tab.c y lex.yy.c.
Para compilar los archivos generados.
Luego de haber generado los archivos .c tipear lo siguiente:
 C:gcc –o pruebaej lex.yy.c
 Con esto generará se un archivo llamado “pruebaej.exe”
 El argumento –o permite crear el archivo ejecutable
6) Ejercicio: Suma de matriz de 2x2
1. Lo primero es crear los archivos correspondientes para flex y bison, en este caso matriz.l y
matriz.y
2. Como siguiente mediante cmd y el comando cd nos ubicamos en la carpeta para ejecutar
con flex y bison,
3. Lo mismo ejecutamos con bison
4. Mediante estos comandos se crearan los archivos
5. Ahora para crear el ejecutable mediante el comando cd nos ubicamos nuevamente en la
carpeta y ejecutamos el comando.
6. Al finalizar ejecutamos el programa y escribimos la expresión
7) Bibliografía
Arciniegas, C. (10 de Enero de 2010). La Web del Programador. Obtenido de
http://www.lawebdelprogramador.com/cursos/Flex/7588-Introduccion-a-Flex-y-
Bison.html
Lema, A. (6 de Junio de 2007). CCIA. Obtenido de
http://ccia.ei.uvigo.es/docencia/PL/practicas01/practica-1.html
Marmol, D. (16 de Agosto de 2006). Monografias. Obtenido de
http://www.monografias.com/trabajos58/guia-bison-flex/guia-bison-flex.shtml
Palermo, R. (28 de Diciembre de 2011). RP. Obtenido de
http://blog.rolandopalermo.com/2010/10/lex-y-bison-en-un-solo-analizador.html
Paxson, V. (s.f.). tldp. Obtenido de http://es.tldp.org/Manuales-LuCAS/FLEX/flex-es-2.5.html
uvigo. (s.f.). Obtenido de http://ccia.ei.uvigo.es/docencia/PL/doc/BISON.html
wikipedia. (s.f.). Obtenido de https://es.wikipedia.org/wiki/MinGW
Flex y Bison ejercicio matriz 2x2

Más contenido relacionado

La actualidad más candente

MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) Alberto Hdz
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basicscyberleon95
 
8 herramientas de procesos de string
8  herramientas de procesos de string8  herramientas de procesos de string
8 herramientas de procesos de stringcyberleon95
 
Umsa windows,linux,latex
Umsa   windows,linux,latexUmsa   windows,linux,latex
Umsa windows,linux,latexeddymachicado
 
Herramientas flex y bison
Herramientas  flex y bisonHerramientas  flex y bison
Herramientas flex y bisonCarlos Yepez
 
Cap. 5 lpi linux essentials traducido a español
Cap. 5 lpi linux essentials traducido a españolCap. 5 lpi linux essentials traducido a español
Cap. 5 lpi linux essentials traducido a españolWilmer Lizunde Damiano
 
4 file ownerships and permissions
4 file ownerships and permissions4 file ownerships and permissions
4 file ownerships and permissionscyberleon95
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltossgonzales2012
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativoGerald20091
 
4 3 Archivos Por Lotes Y Guiones
4 3 Archivos Por Lotes Y Guiones4 3 Archivos Por Lotes Y Guiones
4 3 Archivos Por Lotes Y GuionesUVM
 

La actualidad más candente (19)

MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basics
 
6 la shell bash
6 la shell bash6 la shell bash
6 la shell bash
 
Sistema operativo d
Sistema operativo dSistema operativo d
Sistema operativo d
 
8 herramientas de procesos de string
8  herramientas de procesos de string8  herramientas de procesos de string
8 herramientas de procesos de string
 
Umsa windows,linux,latex
Umsa   windows,linux,latexUmsa   windows,linux,latex
Umsa windows,linux,latex
 
Herramientas flex y bison
Herramientas  flex y bisonHerramientas  flex y bison
Herramientas flex y bison
 
Introduccion al s
Introduccion al sIntroduccion al s
Introduccion al s
 
Cap. 5 lpi linux essentials traducido a español
Cap. 5 lpi linux essentials traducido a españolCap. 5 lpi linux essentials traducido a español
Cap. 5 lpi linux essentials traducido a español
 
17 comandos basicoslinuxasoitson
17 comandos basicoslinuxasoitson17 comandos basicoslinuxasoitson
17 comandos basicoslinuxasoitson
 
4 file ownerships and permissions
4 file ownerships and permissions4 file ownerships and permissions
4 file ownerships and permissions
 
Ms dos
Ms dosMs dos
Ms dos
 
Tutorial0
Tutorial0Tutorial0
Tutorial0
 
19 usuarios gruposlinuxasoitson
19 usuarios gruposlinuxasoitson19 usuarios gruposlinuxasoitson
19 usuarios gruposlinuxasoitson
 
Ms dos
Ms dosMs dos
Ms dos
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativo
 
Ms2
Ms2Ms2
Ms2
 
4 3 Archivos Por Lotes Y Guiones
4 3 Archivos Por Lotes Y Guiones4 3 Archivos Por Lotes Y Guiones
4 3 Archivos Por Lotes Y Guiones
 

Destacado

Destacado (14)

Controlling Chaosroughdraft1
Controlling Chaosroughdraft1Controlling Chaosroughdraft1
Controlling Chaosroughdraft1
 
Seminario v
Seminario vSeminario v
Seminario v
 
Le tecnologie per l'addestramento nella gestione delle emergenze
Le tecnologie per l'addestramento nella gestione delle emergenzeLe tecnologie per l'addestramento nella gestione delle emergenze
Le tecnologie per l'addestramento nella gestione delle emergenze
 
Vestuario Laboral En Barna
Vestuario Laboral En Barna
Vestuario Laboral En Barna
Vestuario Laboral En Barna
 
Tevo vx10-720-specification-www.ttbvs.com
Tevo vx10-720-specification-www.ttbvs.comTevo vx10-720-specification-www.ttbvs.com
Tevo vx10-720-specification-www.ttbvs.com
 
Shot list
Shot listShot list
Shot list
 
Desis forum presentation_gong
Desis forum presentation_gongDesis forum presentation_gong
Desis forum presentation_gong
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Dreamweave
DreamweaveDreamweave
Dreamweave
 
日本の地形
日本の地形日本の地形
日本の地形
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Brandroot Profile
Brandroot ProfileBrandroot Profile
Brandroot Profile
 
Como instalar red hat
Como instalar red hatComo instalar red hat
Como instalar red hat
 
Glosario
GlosarioGlosario
Glosario
 

Similar a Flex y Bison ejercicio matriz 2x2

Similar a Flex y Bison ejercicio matriz 2x2 (20)

Flex y Bison
Flex y BisonFlex y Bison
Flex y Bison
 
Investigacion Flex Y Bison
Investigacion Flex Y BisonInvestigacion Flex Y Bison
Investigacion Flex Y Bison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Taller
TallerTaller
Taller
 
Fyb
FybFyb
Fyb
 
Trabajo compiladores ivan bolaños
Trabajo compiladores ivan bolañosTrabajo compiladores ivan bolaños
Trabajo compiladores ivan bolaños
 
Flex y bison
Flex y  bisonFlex y  bison
Flex y bison
 
Flex bison
Flex bisonFlex bison
Flex bison
 
Flex bison
Flex bisonFlex bison
Flex bison
 
Flex ybison
Flex ybisonFlex ybison
Flex ybison
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Taller
TallerTaller
Taller
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Flex y bison héctor espinosa
Flex y bison   héctor espinosaFlex y bison   héctor espinosa
Flex y bison héctor espinosa
 
Compiladores flex bison
Compiladores flex bisonCompiladores flex bison
Compiladores flex bison
 
Flex y bison jorge bejarano
Flex y bison   jorge bejaranoFlex y bison   jorge bejarano
Flex y bison jorge bejarano
 
Trabajo flex byson
Trabajo flex bysonTrabajo flex byson
Trabajo flex byson
 
Flex y Byson
Flex y BysonFlex y Byson
Flex y Byson
 
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
 

Más de Carlos Brusil (12)

Autocad
AutocadAutocad
Autocad
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Python
PythonPython
Python
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Emulador emu 8086
Emulador emu 8086Emulador emu 8086
Emulador emu 8086
 
Emulador emu 8086
Emulador emu 8086Emulador emu 8086
Emulador emu 8086
 
Decompilador
DecompiladorDecompilador
Decompilador
 
Procesadores
ProcesadoresProcesadores
Procesadores
 
Procesadores
ProcesadoresProcesadores
Procesadores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Cati
CatiCati
Cati
 

Último

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 

Último (20)

Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 

Flex y Bison ejercicio matriz 2x2

  • 1. PONTIFICIA UIVERSIDAD CATÓLICA DEL ECUADOR SEDE IBARRA 1. DATOS INFORMATIVOS 1.1 Nombre: Luis Viteri, Andrés Brusil 1.2 Carrera: Sistemas 1.3 Nivel: 5to 1.4 Materia: Compiladores 1.5 Tema: Flex y Bison Ejercicio 1.6 Fecha: 24/07/16
  • 2. 2. DESCRIPCION Herramientas para la construcción de procesadores de lenguaje. A continuación se muestran algunas de las herramientas disponibles que pueden utilizarse para la construcción de Procesadores de Lenguaje. Aplicación de los lenguajes: 1) Reseña Histórica 1940’s: – Primeros ordenadores. – Programación directa en código máquina. – Nace el ensamblador (traducido manualmente) – Se automatiza la etapa de ensamblado 1950’s – (1950) John Backus dirige en IBM un proyecto de lenguaje algebraico – (1954-1958) Nace el FORTRAN (FORmulae TRANslator)
  • 3. – Primer compilador de FORTRAN para IBM modelo 704 1950’s (finales): – F.L. Bauer (Univ. Munich) dirige un proyecto de lenguaje formal – Se crea un comité conjunto con la Association for Computing Machinery en el que participa Backus – Se define IAL (International Algebraic Language) – Posteriormente se denomina ALGOL 58 (ALGOrithmic Language) Características de ALGOL 58 – Definición de la notación BNF (Backus-Naur Form) – Declaración de tipos de variables – Estructura modular – Funciones recursivas – Paso de parámetros por valor o por nombre – Precursor de Pascal, Ada o Modula 1970’s: – Se estudian las gramáticas LR – Se definen los métodos de análisis ascendente SLR y LALR – Se crean numerosas herramientas de ayuda al diseño de compiladores – A mediados de la década aparecen las herramientas lex y yacc que se convierten en estándares de facto al distribuirse con UNIX. – La Free Software Fundation distribuye estas herramientas bajo los nombres de flex y bison Generación de código: – Inicialmente la gestión de la memoria era estática
  • 4. – Cuando aparecen las funciones recursivas se desarrolla la pila como forma de gestionar la memoria – La gestión de memoria dinámica conduce a la definición del montículo (heap) como zona de gestión de esta memoria – Surgen nuevos problemas como las referencias pérdidas o la recogida de basura Últimos avances: – Optimización de código – Máquinas virtuales y auge de los lenguajes interpretados 2) Diseño y construcción de un compilador Análisis léxico Objetivo: – Leer caracteres e identificar componentes léxicos (tokens) – Filtrar comentarios – Detectar errores léxicos Ejemplo:
  • 5. Análisis Sintáctico Objetivo: – Verificar estructuras gramaticales – Detectar errores de sintaxis Especificación: – Gramáticas libres de contexto Ejemplo: Análisis Semántico Objetivo: – Verificar restricciones semánticas (predefinición de variables, consistencia de tipos, llamadas a funciones) – Generar un Árbol de Sintaxis Abstracta Especificación: – Gramáticas atribuidas Ejemplo:
  • 6. Las herramientas Flex y Bison 3) Que es flex y Bison 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. Es compatible casi al 100% con Lex, una herramienta clásica de Unix para la generación de analizadores léxicos, pero es un desarrollo diferente realizado por GNU bajo licencia GPL. Bison es un generador de analizadores sintácticos de propósito general que convierte una descripción para una gramática independiente del contexto (en realidad de una subclase de éstas, las LALR) en un programa en C que analiza esa gramática. Es compatible al 100% con Yacc, una herramienta clásica de Unix para la generación de analizadores léxicos, pero es un desarrollo diferente realizado por GNU bajo licencia GPL. Todas la gramáticas escritas apropiadamente para Yacc deberían funcionar con Bison sin ningún cambio. Usándolo junto a Flex esta herramienta permite construir compiladores de lenguajes. 4) Como se instala Flex y Bison 1) Es necesario obtener el software descargando la versión que necesitamos de las páginas oficiales http://gnuwin32.sourceforge.net/packages/flex.htm 2) Instalar el software en la unidad C: (para explicar a partir del punto 4 se tendrá como hecho que flex y bison han sido instalados en la ruta: C:GnuWin32 donde contiene una subcarpeta llamada bin donde se encuentran los programas respectivos)
  • 7. 3) Flex y bison son aplicaciones de consola, por lo que se deberá entrar al Símbolo del sistema y tipear líneas de comando para ejecutar Flex. 4) 4. Si deseas que flex y bison se integren al conjunto de variables del entorno (esto te va a permitir llamar a flex/bison desde cualquier ubicación en la línea de comandos) debes hacer lo siguiente: a. Clic derecho en “Mi PC”. b. Selecciona “Propiedades” c. Clic en la pestaña “Opciones Avanzadas” d. Presiona el botón “Variables de entorno” e. En la ventana de variables de entorno, ubicarse en la sección “Variables del sistema” f. luego haz clic en PATH y luego en el botón “Modificar” (si no está hacer clic en “Nueva” y agregar PATH) g. En la nueva ventana, escribir la ruta completa al directorio “bin” de la aplicación flex/bison. Si existe otro valor, separarlos con comas. h. Aceptar los cambios y luego reiniciar el sistema operativo. Capturas de pantalla de la instalación Herramientas necesarias para la ejecución del proyecto  flex-2.5.4a-1  bison-2.4.1  mingw-get-inst-20120426 DESCARGAS DE LAS HERRAMIENTAS Descargamos la herramienta Flex de la siguiente página http://gnuwin32.sourceforge.net/packages/flex.htm
  • 8. Descargamos la herramienta Bison de la siguiente página: http://gnuwin32.sourceforge.net/packages/bison.htm Descargamos el MinGw de la siguiente página: http://www.4shared.com/file/ypK4312i/mingw-get-inst- 20120426.htm?locale=es&sop=true
  • 9.
  • 10. Como podemos observar aquí tenemos los tres archivos necesarios INSTALACIÓN DE LAS HERRAMIENTAS 1.- Flex Primero debemos instalar la herramienta flex
  • 11.
  • 12.
  • 13.
  • 15.
  • 16.
  • 17. Comprobamos si está instalado 1.1 3.- Mingw Instalamos la herramienta mingw
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 24. Editamos la variable path Al final colocamos un punto y coma (;) y pegamos esto: C:GnuWin32bin escribimos otraves el punto y coma (;) y pegamos esto : C:MinGWbin de esta menera:
  • 25.
  • 26. Aceptamos todo y salimos, para finalizar nos den quedar estas dos carpetas 5) Como se compila con Flex y Bison
  • 27. Luego de escribir las especificaciones de flex y bison realizar lo siguiente.  Si se desea invocar a flex: o Por ejemplo, si se tiene un archivo de especificación de Flex llamado prueba.l dentro de una carpeta “archivos” tipear lo siguiente C:archivos>flex prueba.l o Luego presionar ENTER o Se habrá generado un archivo de nombre lex.yy.c dentro de la carpeta donde se encuentra el archivo prueba.l  Para invocar a Bison en conjunción con flex realizar lo siguiente: o Por ejemplo, si se tiene un archivo de especificación de Bison y Flex llamado prueba.y y prueba.l respectivamente dentro de una carpeta “archivos” tipear lo siguiente o C:archivos>bison –d prueba.y o C:archivos>flex prueba.l o Luego al presionar ENTER se generarán tres archivos para su posteriorcompilación: prueba.tab.h, prueba.tab.c y lex.yy.c. Para compilar los archivos generados. Luego de haber generado los archivos .c tipear lo siguiente:  C:gcc –o pruebaej lex.yy.c  Con esto generará se un archivo llamado “pruebaej.exe”  El argumento –o permite crear el archivo ejecutable 6) Ejercicio: Suma de matriz de 2x2 1. Lo primero es crear los archivos correspondientes para flex y bison, en este caso matriz.l y matriz.y
  • 28. 2. Como siguiente mediante cmd y el comando cd nos ubicamos en la carpeta para ejecutar con flex y bison, 3. Lo mismo ejecutamos con bison
  • 29. 4. Mediante estos comandos se crearan los archivos 5. Ahora para crear el ejecutable mediante el comando cd nos ubicamos nuevamente en la carpeta y ejecutamos el comando.
  • 30. 6. Al finalizar ejecutamos el programa y escribimos la expresión
  • 31. 7) Bibliografía Arciniegas, C. (10 de Enero de 2010). La Web del Programador. Obtenido de http://www.lawebdelprogramador.com/cursos/Flex/7588-Introduccion-a-Flex-y- Bison.html Lema, A. (6 de Junio de 2007). CCIA. Obtenido de http://ccia.ei.uvigo.es/docencia/PL/practicas01/practica-1.html Marmol, D. (16 de Agosto de 2006). Monografias. Obtenido de http://www.monografias.com/trabajos58/guia-bison-flex/guia-bison-flex.shtml Palermo, R. (28 de Diciembre de 2011). RP. Obtenido de http://blog.rolandopalermo.com/2010/10/lex-y-bison-en-un-solo-analizador.html Paxson, V. (s.f.). tldp. Obtenido de http://es.tldp.org/Manuales-LuCAS/FLEX/flex-es-2.5.html uvigo. (s.f.). Obtenido de http://ccia.ei.uvigo.es/docencia/PL/doc/BISON.html wikipedia. (s.f.). Obtenido de https://es.wikipedia.org/wiki/MinGW