SlideShare una empresa de Scribd logo
1 de 9
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE IBARRA
ESCUELA DE INGENIERÍA EN SISTEMAS
TALLER DE COMPILADORES
Nombre: Guissela Guerrero
Nivel: Quinto
Fecha: 2013-05-28
1) Herramientas para la construcción de procesadores de lenguaje.
Herramienta Lenguaje Descripción
Bison C Generador de Analizadores Sintácticos Ascendentes tipo YACC
COCO/R C/C++ Generador de Analizadores Léxicos y Sintácticos Descendentes Recursivos
Flex C Generador de Analizadores Léxicos tipo Lex
Lex C Generador de Analizadores Léxicos
SDGLL1 exe Sistema Detector de Gramáticas LL(1) y generador de la tabla
TS 2006 C/C++ Tipo abstracto de datos Tabla de Símbolos de uso sencillo
TS C Tipo abstracto de datos Tabla de Símbolos
TS-OO C++ Tipo abstracto de datos orientado a objetos Tabla de Símbolos
VASt exe
Visualizador de árboles sintácticos partiendo de los ficheros con la
gramática y el parse pedidos en la Práctica [versión 2.0, Windows]
VASt C++
Visualizador de árboles sintácticos partiendo de los ficheros con la
gramática y el parse pedidos en la Práctica [versión 1.0, Linux]
YACC C Generador de Analizadores Sintácticos Ascendentes LR(1)
2) Aplicación de los lenguajes:
a) Reseña Histórica
AÑO CARACTERISTICAS
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 (medianos)
 Noam Chomsky publica sus estudios sobre la estructura de los lenguajes y
las gramáticas formales.
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)
1960’s
Primeras técnicas de desarrollo de compiladores
 1958: Strong y otros proponen dividir el compilador en dos fases:
 front-end y back-end y promueven la creación de un lenguaje intermedio
universal (UNCOL – UNiversal Computer Oriented Language).
 1959: Rabin y Scott proponen utilizar autómatas deterministas para el
análisis léxico
 1961: Primer analizador sintáctico descendente recursivo
 Durante toda la década se estudian intensamente las gramáticas LL.
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
b) Diseño y construcción de un compilador.
c) Las herramientas Flex y Bison.
Flex y bison son las herramientas desarrolladas en el proyecto GNU (Free Software
Foundation) equivalentes a lex y yacc en el sistema operativo UNIX®.
3) Que es flex y Bison
Flex y Bison están envejeciendo utilidades Unix que le ayudan a escribir programas de análisis
muy rápido de formatos de archivos de casi arbitrarias. Formalmente, implementan Look-
Ahead-izquierda-derecha (en lugar de "descenso recursivo") el análisis de las gramáticas libres
de contexto (a diferencia de “lenguaje natural “no ambiguo.
4) Como se instala Flex y Bison
1) Primero se descarga el archivo .rar de la pagina http://www.delorie.com/djgpp/.
2) Creamos una carpeta en C que se llame DJGPP y descomprimimos los archivos
contenidos en DJGPP ahí.
3) Luego debemos crear una carpeta en la unidad C: que se llame PRUEBAS.
4) En esta carpeta cargaremos todos nuestros proyectos de Flex y bison.
5) El siguiente paso es configurar las rutas de Flex y bison, esto lo hacemos entrando
al cmd.
6) 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
7) Con esto ya tendremos configurados Flex y lex 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"
8) Y bison -dy "nombre_de_archivo.y"
9) Se crean los archivos lexyy.c, y.tab.c, y.tab.h
5) Como se compila con Flex y Bison
1) Crearemos un nuevo proyecto en dev-c++
2) Escogemos una aplicación de consola y que sea un proyecto en c
3) Agregamos los archivos creados por el Flex y bison
4) Y compilamos
5) Se crea el ejecutable con el nombre del proyecto en este caso "pruebita.exe"
6) Y ejecutamos nuestro programa
6) 2 Ejemplos de la creación de un compilador utilizando Flex y Bison.
Calculadora sencilla que reconocerá las principales operaciones aritmética (+,-,* y /).
2) Traducción del lenguaje coloquial de SQL en español al conocido ANSI SQL.

Más contenido relacionado

La actualidad más candente

Taller compiladores conceptos
Taller compiladores conceptosTaller compiladores conceptos
Taller compiladores conceptos
juniortroya
 
Trabajo compiladores ivan bolaños
Trabajo compiladores ivan bolañosTrabajo compiladores ivan bolaños
Trabajo compiladores ivan bolaños
Iván Bolaños
 
Taller de actividades de compiladores, Flex y Bison
Taller de actividades de compiladores, Flex y BisonTaller de actividades de compiladores, Flex y Bison
Taller de actividades de compiladores, Flex y Bison
Alex Toapanta
 

La actualidad más candente (20)

Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison
 
Usando flex en Windows
Usando flex en WindowsUsando flex en Windows
Usando flex en Windows
 
Taller compiladores conceptos
Taller compiladores conceptosTaller compiladores conceptos
Taller compiladores conceptos
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
TALLER FLEX Y BISON
TALLER FLEX Y BISONTALLER FLEX Y BISON
TALLER FLEX Y BISON
 
Trabajo compiladores ivan bolaños
Trabajo compiladores ivan bolañosTrabajo compiladores ivan bolaños
Trabajo compiladores ivan bolaños
 
Taller de actividades de compiladores, Flex y Bison
Taller de actividades de compiladores, Flex y BisonTaller de actividades de compiladores, Flex y Bison
Taller de actividades de compiladores, Flex y Bison
 
Flex ybison
Flex ybisonFlex ybison
Flex ybison
 
Taller flex y bison
Taller flex y bisonTaller flex y bison
Taller flex y bison
 
Taller 21 de junio
Taller 21 de junioTaller 21 de junio
Taller 21 de junio
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Trabajo flex byson
Trabajo flex bysonTrabajo flex byson
Trabajo flex byson
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Generalidades de la programacion
Generalidades de la programacionGeneralidades de la programacion
Generalidades de la programacion
 
Flex bison
Flex bisonFlex bison
Flex bison
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Programazion
ProgramazionProgramazion
Programazion
 
Taller
TallerTaller
Taller
 
Flex y Bison
Flex y BisonFlex y Bison
Flex y Bison
 

Destacado

Sensores FSR y Flex
Sensores FSR y FlexSensores FSR y Flex
Sensores FSR y Flex
elibarriosc
 
El reino de los cielos 3
El reino de los cielos 3El reino de los cielos 3
El reino de los cielos 3
Saúl Loera
 
Metodología PACIE. Bloque de Cierre
Metodología PACIE. Bloque de CierreMetodología PACIE. Bloque de Cierre
Metodología PACIE. Bloque de Cierre
oswaldotroncoso
 
Sensores y transmisores analogicos. unidad ii. ici. scm
Sensores y transmisores analogicos. unidad ii. ici. scmSensores y transmisores analogicos. unidad ii. ici. scm
Sensores y transmisores analogicos. unidad ii. ici. scm
acpicegudomonagas
 

Destacado (20)

Sensores
SensoresSensores
Sensores
 
Sensores FSR y Flex
Sensores FSR y FlexSensores FSR y Flex
Sensores FSR y Flex
 
Dios
DiosDios
Dios
 
Jesus chooses 12 helpers spanish cb6
Jesus chooses 12 helpers spanish cb6Jesus chooses 12 helpers spanish cb6
Jesus chooses 12 helpers spanish cb6
 
Folha 210
Folha 210Folha 210
Folha 210
 
lepto_ppt
lepto_pptlepto_ppt
lepto_ppt
 
Actividad nro 3 cuadro tributario fuentes
Actividad nro 3 cuadro tributario fuentesActividad nro 3 cuadro tributario fuentes
Actividad nro 3 cuadro tributario fuentes
 
Autocad
AutocadAutocad
Autocad
 
El reino de los cielos 3
El reino de los cielos 3El reino de los cielos 3
El reino de los cielos 3
 
Metodología PACIE. Bloque de Cierre
Metodología PACIE. Bloque de CierreMetodología PACIE. Bloque de Cierre
Metodología PACIE. Bloque de Cierre
 
Edj v1n08entendiendoelverdaderoamor
Edj v1n08entendiendoelverdaderoamorEdj v1n08entendiendoelverdaderoamor
Edj v1n08entendiendoelverdaderoamor
 
Perder y ganar._._._
Perder y ganar._._._Perder y ganar._._._
Perder y ganar._._._
 
Pp.Nile Dutch
Pp.Nile DutchPp.Nile Dutch
Pp.Nile Dutch
 
Searag General
Searag GeneralSearag General
Searag General
 
Universidad fermin toro tributario
Universidad fermin toro tributarioUniversidad fermin toro tributario
Universidad fermin toro tributario
 
Swasthavrutta syllabus PPT
Swasthavrutta syllabus PPTSwasthavrutta syllabus PPT
Swasthavrutta syllabus PPT
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
8 rahasia sukses
8 rahasia sukses8 rahasia sukses
8 rahasia sukses
 
Design Sprint
Design SprintDesign Sprint
Design Sprint
 
Sensores y transmisores analogicos. unidad ii. ici. scm
Sensores y transmisores analogicos. unidad ii. ici. scmSensores y transmisores analogicos. unidad ii. ici. scm
Sensores y transmisores analogicos. unidad ii. ici. scm
 

Similar a INTRODUCCION A FLEX Y BISON (17)

Bison y flex
Bison y flexBison y flex
Bison y flex
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Taller de compiladores
Taller de compiladoresTaller de compiladores
Taller de compiladores
 
Flexybison
FlexybisonFlexybison
Flexybison
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Flexybison
FlexybisonFlexybison
Flexybison
 
Flex y Bison
Flex y BisonFlex y Bison
Flex y Bison
 
Taller de Compiladores flx y bsn
Taller de Compiladores flx y bsnTaller de Compiladores flx y bsn
Taller de Compiladores flx y bsn
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
 
Flex y bison héctor espinosa
Flex y bison   héctor espinosaFlex y bison   héctor espinosa
Flex y bison héctor espinosa
 
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
 
Fyb
FybFyb
Fyb
 
Pontificia universidad católica del ecuador flex y bison
Pontificia universidad católica del ecuador flex y bisonPontificia universidad católica del ecuador flex y bison
Pontificia universidad católica del ecuador flex y bison
 
Taller de flex y bison
Taller de flex y bisonTaller de flex y bison
Taller de flex y bison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 

Más de Guissela Guerrero (8)

COBIT Administrar e Implementar
COBIT Administrar e ImplementarCOBIT Administrar e Implementar
COBIT Administrar e Implementar
 
Analisis Proyeccion Presupuestaria
Analisis Proyeccion PresupuestariaAnalisis Proyeccion Presupuestaria
Analisis Proyeccion Presupuestaria
 
Analisis vertical y_horizontal
Analisis vertical y_horizontalAnalisis vertical y_horizontal
Analisis vertical y_horizontal
 
Analisis de indicadores Calzados Majo
Analisis de indicadores Calzados MajoAnalisis de indicadores Calzados Majo
Analisis de indicadores Calzados Majo
 
Compiladores deber 5
Compiladores deber 5Compiladores deber 5
Compiladores deber 5
 
Compilacion Java en CDM
Compilacion Java en CDMCompilacion Java en CDM
Compilacion Java en CDM
 
Lenguajes de Programacion según su Generación
Lenguajes de Programacion según su GeneraciónLenguajes de Programacion según su Generación
Lenguajes de Programacion según su Generación
 
VB Decompiler Information
VB Decompiler InformationVB Decompiler Information
VB Decompiler Information
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

INTRODUCCION A FLEX Y BISON

  • 1. PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE IBARRA ESCUELA DE INGENIERÍA EN SISTEMAS TALLER DE COMPILADORES Nombre: Guissela Guerrero Nivel: Quinto Fecha: 2013-05-28 1) Herramientas para la construcción de procesadores de lenguaje. Herramienta Lenguaje Descripción Bison C Generador de Analizadores Sintácticos Ascendentes tipo YACC COCO/R C/C++ Generador de Analizadores Léxicos y Sintácticos Descendentes Recursivos Flex C Generador de Analizadores Léxicos tipo Lex Lex C Generador de Analizadores Léxicos SDGLL1 exe Sistema Detector de Gramáticas LL(1) y generador de la tabla TS 2006 C/C++ Tipo abstracto de datos Tabla de Símbolos de uso sencillo TS C Tipo abstracto de datos Tabla de Símbolos TS-OO C++ Tipo abstracto de datos orientado a objetos Tabla de Símbolos VASt exe Visualizador de árboles sintácticos partiendo de los ficheros con la gramática y el parse pedidos en la Práctica [versión 2.0, Windows] VASt C++ Visualizador de árboles sintácticos partiendo de los ficheros con la gramática y el parse pedidos en la Práctica [versión 1.0, Linux] YACC C Generador de Analizadores Sintácticos Ascendentes LR(1)
  • 2. 2) Aplicación de los lenguajes: a) Reseña Histórica AÑO CARACTERISTICAS 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 (medianos)  Noam Chomsky publica sus estudios sobre la estructura de los lenguajes y las gramáticas formales. 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) 1960’s Primeras técnicas de desarrollo de compiladores  1958: Strong y otros proponen dividir el compilador en dos fases:  front-end y back-end y promueven la creación de un lenguaje intermedio universal (UNCOL – UNiversal Computer Oriented Language).  1959: Rabin y Scott proponen utilizar autómatas deterministas para el análisis léxico  1961: Primer analizador sintáctico descendente recursivo  Durante toda la década se estudian intensamente las gramáticas LL. 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
  • 3. b) Diseño y construcción de un compilador.
  • 4. c) Las herramientas Flex y Bison. Flex y bison son las herramientas desarrolladas en el proyecto GNU (Free Software Foundation) equivalentes a lex y yacc en el sistema operativo UNIX®. 3) Que es flex y Bison Flex y Bison están envejeciendo utilidades Unix que le ayudan a escribir programas de análisis muy rápido de formatos de archivos de casi arbitrarias. Formalmente, implementan Look- Ahead-izquierda-derecha (en lugar de "descenso recursivo") el análisis de las gramáticas libres de contexto (a diferencia de “lenguaje natural “no ambiguo. 4) Como se instala Flex y Bison 1) Primero se descarga el archivo .rar de la pagina http://www.delorie.com/djgpp/. 2) Creamos una carpeta en C que se llame DJGPP y descomprimimos los archivos contenidos en DJGPP ahí. 3) Luego debemos crear una carpeta en la unidad C: que se llame PRUEBAS.
  • 5. 4) En esta carpeta cargaremos todos nuestros proyectos de Flex y bison. 5) El siguiente paso es configurar las rutas de Flex y bison, esto lo hacemos entrando al cmd. 6) 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
  • 6. 7) Con esto ya tendremos configurados Flex y lex 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" 8) Y bison -dy "nombre_de_archivo.y" 9) Se crean los archivos lexyy.c, y.tab.c, y.tab.h
  • 7. 5) Como se compila con Flex y Bison 1) Crearemos un nuevo proyecto en dev-c++ 2) Escogemos una aplicación de consola y que sea un proyecto en c 3) Agregamos los archivos creados por el Flex y bison
  • 8. 4) Y compilamos 5) Se crea el ejecutable con el nombre del proyecto en este caso "pruebita.exe" 6) Y ejecutamos nuestro programa
  • 9. 6) 2 Ejemplos de la creación de un compilador utilizando Flex y Bison. Calculadora sencilla que reconocerá las principales operaciones aritmética (+,-,* y /). 2) Traducción del lenguaje coloquial de SQL en español al conocido ANSI SQL.