PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR
SEDE IBARRA
ESCUELA DE INGENIERÍA EN SISTEMAS
Nombre: Liliana Chisaguano
Nivel: 5to Semestre
Tema: Flex y Bison
Materia: Compiladores
Fecha: 21/06/2017
1. Herramientas para la construcción de procesadores de lenguaje.
2. Aplicación de los lenguajes.
Los lenguajes de programación hoy en día tienen una infinidad de aplicaciones, básicamente
cualquier objeto electrónico tiene cierto grado de programación. Algunos de los más comunes
son C++ y JAVA, también existe HTML, HTTP, XML, XAML y C#, este último
actualmente es el más utilizado en todos los dispositivos y redes basados en MICROSOFT
(Xbox 350, Windows Mobile, Windows Phone, Windows Cloud, Zune, etc.). Ya que los
lenguajes de programación son informáticamente un puente entre el Hardware y el Software
estos permiten que las computadoras puedan establecer conexión con un celular, una cámara
o una consola portátil de videojuego. Otra de las aplicaciones de los lenguajes de
programación son las matemáticas como las calculadoras, cajas registradoras, cajeros
automáticos, por solo mencionar algunos ejemplos sencillos. Existen también niveles de
programación mucho más complejos como los videojuegos o los pilotos automáticos de los
aviones comerciales o las máquinas de juego de los casinos que siguen un patrón de
probabilidad a partir de un arreglo de números al azar establecido por una programación
numérica. La robótica es la combinación de mecánica, electrónica y programación, la cual
en base a sensores y mecanismos sigue una serie de instrucciones algorítmicas las cuales le
permiten por ejemplo a un brazo robótico montar una rueda, ajustar un tornillo o cortar un
rectángulo de 3 cm cuadrados en una placa de acero. Con el avance de la tecnología los
límites de la programación se vuelven cada vez más distantes.
3. Reseña Histórica.
Las primeras aplicaciones del procesamiento del lenguaje natural surgieron entre
1940 y 1960, teniendo como interés fundamental la traducción automática de textos
entre diferentes idiomas. Los experimentos en este ámbito se basaban
fundamentalmente en la sustitución automática palabra por palabra, por lo que se
obtenían traducciones muy rudimentarias, que no proporcionaban unos resultados
claros. Surgió por tanto la necesidad de resolver ambigüedades sintácticas y
semánticas, así como la importancia de considerar la información contextual. Los
problemas más relevantes en este tiempo fueron la carencia de un orden de la
estructura oracional en algunas lenguas, y la dificultad para obtener una
representación tanto sintáctica como semántica, pero una vez que se empezaron a
tener en cuenta se dio paso a una concepción más realista del lenguaje en la que era
necesario contemplar las transformaciones que se producen en la estructura de la frase
durante el proceso de traducción. Los últimos años se caracterizan por la
incorporación de técnicas estadísticas y el desarrollo de formalismos adecuados para
el tratamiento de la información léxica. Se ha introducido nuevas técnicas de
representación del conocimiento muy cercanas a la inteligencia artificial, y las
técnicas de procesamiento utilizadas por investigadores procedentes del área de la
lingüística e informática son cada vez más próximas.
4. Diseño y construcción de un compilador.
5. Las herramientas Flex y Bison.
Nos ofrecen una gran cantidad de herramientas utilizando variables, operadores y librerías
propias, como se detallan algunas en la siguiente descripción.
6. 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 las 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.
7. Como se instala Flex y Bison.
1) Descarga el software disponible en el sitio de la cátedra.
2) Instalar el software en la unidad C: (para explicar a partir del punto 4 se tendrá
como hipótesis de 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. Una alternativa es crear un
archivo de proceso por lotes (*.bat) que contenga las líneas de comando para la
ejecución de Flex y Bison y/o la compilación del archivo generado.
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:
• Clic derecho en “Mi PC”.
• Selecciona “Propiedades”
• Clic en la pestaña “Opciones Avanzadas”
• Presiona el botón “Variables de entorno.
En la nueva ventana, escribir la ruta completa al directorio “bin” de la aplicación
flex/bison. Si existe otro valor, separarlos con comas.
INSTALACION FLEX
DESCARGA: http://gnuwin32.sourceforge.net/packages/flex.htm
EJECUTAR EL INSTALADOR DE FLEX
ACEPTAMOS Y SIGUIENTE
AQUÍ NOS MUESTRA LA RUTA DONDE VA A SER INSTALADO EL PROGRAMA
:
AQUÍ NOS MUESTRA LOS COMPONENENTES QUE VAN A SER INSTALADOS
AQUÍ PODEMOS VER EL NOMBRE DE LA CARPETA DONDE VA A ESTAR EL
PROGRAMA
:
AQUÍ ELEGIMOS ALGUNAS TAREAS ADICIONALES
FINALMENTE INSTALAMOS
RUTA DONDE INSTALAMOS
INSTALACION DE BISON
DESCARGA: http://gnuwin32.sourceforge.net/packages/bison.htm
AQUÍ EJECUTAMOS EL SETUP
ACEPTAMOS EL ACUERDO CON LA LICENCIA Y SIGUIENTE
AQUÍ PODEMOS VER LA RUTA DONDE VA A ESTAR INSTALDO EL PROGRAMA
AQUÍ INSTALAMOS TODOS LOS RECURSOS NECESARIOS
SE CREA LA CARPETA DONDE VA A ESTAR NUESTRA HERRAMIENTA BISON
FINALMENTE INSTALAMOS
AQUÍ ESTA COMPLETADA LA INSTALACION
AQUÍ VEMOS EN LA CARPETA DE DESTINO NUESTRAS DOS HERRAMIENTAS FLEX Y
BISON
8. Como se compila con Flex y Bison.
Para compilar en Flex y Bison seguimos los siguientes pasos. Cuando tengas listo podrás
llamar a flex/bison desde el símbolo del sistema sin necesidad de ubicarte en la carpeta donde
ha sido instalado flex/bison.
Luego de escribir las especificaciones de flex y bison realizar lo siguiente. Si se desea invocar
a flex:
9. 2 Ejemplos de la creación de un compilador utilizando Flex y Bison.

Flex y brison

  • 1.
    PONTIFICIA UNIVERSIDAD CATÓLICADEL ECUADOR SEDE IBARRA ESCUELA DE INGENIERÍA EN SISTEMAS Nombre: Liliana Chisaguano Nivel: 5to Semestre Tema: Flex y Bison Materia: Compiladores Fecha: 21/06/2017 1. Herramientas para la construcción de procesadores de lenguaje.
  • 2.
    2. Aplicación delos lenguajes. Los lenguajes de programación hoy en día tienen una infinidad de aplicaciones, básicamente cualquier objeto electrónico tiene cierto grado de programación. Algunos de los más comunes son C++ y JAVA, también existe HTML, HTTP, XML, XAML y C#, este último actualmente es el más utilizado en todos los dispositivos y redes basados en MICROSOFT (Xbox 350, Windows Mobile, Windows Phone, Windows Cloud, Zune, etc.). Ya que los lenguajes de programación son informáticamente un puente entre el Hardware y el Software estos permiten que las computadoras puedan establecer conexión con un celular, una cámara o una consola portátil de videojuego. Otra de las aplicaciones de los lenguajes de programación son las matemáticas como las calculadoras, cajas registradoras, cajeros automáticos, por solo mencionar algunos ejemplos sencillos. Existen también niveles de programación mucho más complejos como los videojuegos o los pilotos automáticos de los aviones comerciales o las máquinas de juego de los casinos que siguen un patrón de probabilidad a partir de un arreglo de números al azar establecido por una programación numérica. La robótica es la combinación de mecánica, electrónica y programación, la cual en base a sensores y mecanismos sigue una serie de instrucciones algorítmicas las cuales le permiten por ejemplo a un brazo robótico montar una rueda, ajustar un tornillo o cortar un rectángulo de 3 cm cuadrados en una placa de acero. Con el avance de la tecnología los límites de la programación se vuelven cada vez más distantes. 3. Reseña Histórica. Las primeras aplicaciones del procesamiento del lenguaje natural surgieron entre 1940 y 1960, teniendo como interés fundamental la traducción automática de textos
  • 3.
    entre diferentes idiomas.Los experimentos en este ámbito se basaban fundamentalmente en la sustitución automática palabra por palabra, por lo que se obtenían traducciones muy rudimentarias, que no proporcionaban unos resultados claros. Surgió por tanto la necesidad de resolver ambigüedades sintácticas y semánticas, así como la importancia de considerar la información contextual. Los problemas más relevantes en este tiempo fueron la carencia de un orden de la estructura oracional en algunas lenguas, y la dificultad para obtener una representación tanto sintáctica como semántica, pero una vez que se empezaron a tener en cuenta se dio paso a una concepción más realista del lenguaje en la que era necesario contemplar las transformaciones que se producen en la estructura de la frase durante el proceso de traducción. Los últimos años se caracterizan por la incorporación de técnicas estadísticas y el desarrollo de formalismos adecuados para el tratamiento de la información léxica. Se ha introducido nuevas técnicas de representación del conocimiento muy cercanas a la inteligencia artificial, y las técnicas de procesamiento utilizadas por investigadores procedentes del área de la lingüística e informática son cada vez más próximas. 4. Diseño y construcción de un compilador.
  • 4.
    5. Las herramientasFlex y Bison. Nos ofrecen una gran cantidad de herramientas utilizando variables, operadores y librerías propias, como se detallan algunas en la siguiente descripción. 6. 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 las 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. 7. Como se instala Flex y Bison.
  • 5.
    1) Descarga elsoftware disponible en el sitio de la cátedra. 2) Instalar el software en la unidad C: (para explicar a partir del punto 4 se tendrá como hipótesis de 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. Una alternativa es crear un archivo de proceso por lotes (*.bat) que contenga las líneas de comando para la ejecución de Flex y Bison y/o la compilación del archivo generado. 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: • Clic derecho en “Mi PC”. • Selecciona “Propiedades” • Clic en la pestaña “Opciones Avanzadas” • Presiona el botón “Variables de entorno.
  • 6.
    En la nuevaventana, escribir la ruta completa al directorio “bin” de la aplicación flex/bison. Si existe otro valor, separarlos con comas.
  • 7.
  • 8.
    AQUÍ NOS MUESTRALA RUTA DONDE VA A SER INSTALADO EL PROGRAMA : AQUÍ NOS MUESTRA LOS COMPONENENTES QUE VAN A SER INSTALADOS
  • 9.
    AQUÍ PODEMOS VEREL NOMBRE DE LA CARPETA DONDE VA A ESTAR EL PROGRAMA : AQUÍ ELEGIMOS ALGUNAS TAREAS ADICIONALES
  • 10.
  • 11.
    INSTALACION DE BISON DESCARGA:http://gnuwin32.sourceforge.net/packages/bison.htm AQUÍ EJECUTAMOS EL SETUP
  • 12.
    ACEPTAMOS EL ACUERDOCON LA LICENCIA Y SIGUIENTE AQUÍ PODEMOS VER LA RUTA DONDE VA A ESTAR INSTALDO EL PROGRAMA
  • 13.
    AQUÍ INSTALAMOS TODOSLOS RECURSOS NECESARIOS SE CREA LA CARPETA DONDE VA A ESTAR NUESTRA HERRAMIENTA BISON
  • 14.
  • 15.
    AQUÍ ESTA COMPLETADALA INSTALACION AQUÍ VEMOS EN LA CARPETA DE DESTINO NUESTRAS DOS HERRAMIENTAS FLEX Y BISON
  • 16.
    8. Como secompila con Flex y Bison. Para compilar en Flex y Bison seguimos los siguientes pasos. Cuando tengas listo podrás llamar a flex/bison desde el símbolo del sistema sin necesidad de ubicarte en la carpeta donde ha sido instalado flex/bison. Luego de escribir las especificaciones de flex y bison realizar lo siguiente. Si se desea invocar a flex:
  • 17.
    9. 2 Ejemplosde la creación de un compilador utilizando Flex y Bison.