25
1 PONTIFICIA UIVERSIDAD CATÓLICA DEL ECUADOR SEDE IBARRA ESCUELA DE INGENIERÍA 1. DATOS INFORMATIVOS Nombre: Carlos Yépez Carrera: Sistemas Nivel: 5to Tema: Flex y Bison Materia: Compiladores Fecha: 28/07/2015

Herramientas flex y bison

Embed Size (px)

Citation preview

1

PONTIFICIA UIVERSIDAD CATÓLICA DEL ECUADOR

SEDE IBARRA

ESCUELA DE INGENIERÍA

1. DATOS INFORMATIVOS

Nombre: Carlos Yépez

Carrera: Sistemas

Nivel: 5to

Tema: Flex y Bison

Materia: Compiladores

Fecha: 28/07/2015

2

Contenido 1. Herramientas para la construcción de procesadores de lenguaje. ....................................... 3

2. Aplicación de los lenguajes: .............................................................................................. 3

3. Reseña Histórica .................................................................................................................... 4

4. Diseño y construcción de un compilador. ............................................................................. 5

5. Las herramientas Flex y Bison. .............................................................................................. 5

6. Que es flex y Bison ................................................................................................................ 6

7. Como se instala Flex y Bison ................................................................................................. 6

7.1 INSTALACION FLEX: ....................................................................................................... 8

7.2 INSTALACION DE BISON: ............................................................................................. 13

7.3 INSTALACION MINGW: ................................................................................................ 18

20. Como se compila con Flex y Bison................................................................................... 24

21. Ejemplos de la creación de un compilador utilizando Flex y Bison. ................................ 25

3

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.

4

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.

5

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

6. Que es flex y Bison

GNU bison es un programa generador de analizadores sintácticos de propósito

general perteneciente al proyecto GNU disponible para prácticamente todos los

sistemas operativos, se usa normalmente acompañado de flex aunque los

analizadores léxicos se pueden también obtener de otras formas.

Bison convierte la descripción formal de un lenguaje, escrita como una gramática libre

de contexto LALR, en un programa en C, C++, o Java que realiza análisis sintáctico.

Es utilizado para crear analizadores para muchos lenguajes, desde simples

calculadoras hasta lenguajes complejos. Para utilizar Bison, es necesaria experiencia

con el la sintaxis usada para describir gramáticas.

Esencialmente Flex es un conjunto de librerías – o framework – para desarrollo de UI (

user interface por sus siglas en ingles). Aunque ActionScript 3.0 (AS3) es el lenguaje

para programar aplicaciones usando el Flex framework, AS3 no es Flex. Si el código

AS3 que se programe utiliza los componentes y métodos definidos en el Flex

framework, entonces se esta usando Flex. Es decir, AS3 no es por si solo Flex.

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

7

En la nueva ventana, escribir la ruta completa al directorio “bin” de la aplicación

flex/bison. Si existe otro valor, separarlos con comas.

8

7.1 INSTALACION FLEX: 1. DESCARGAMOS LA HERRAMIENTA DEL SIGUIENTE SITIO:

http://gnuwin32.sourceforge.net/packages/flex.htm

2. EJECUTAR EL INSTALADOR DE FLEX:

9

3. ACEPTAMOS Y SIGUIENTE:

4. AQUÍ NOS MUESTRA LA RUTA DONDE VA A SER INSTALADO EL PROGRAMA:

10

5. AQUÍ NOS MUESTRA LOS COMPONENENTES QUE VAN A SER INSTALADOS:

6. AQUÍ PODEMOS VER EL NOMBRE DE LA CARPETA DONDE VA A ESTAR EL PROGRAMA:

11

7. AQUÍ ELEGIMOS ALGUNAS TAREAS ADICIONALES:

8. Y FINALMENTE INSTALAMOS:

12

9. AQUI PODEMOS VER LA HERRAMIENTA FLEX INSTALADO EN LA RUTA ANTES ELEGIDA:

13

7.2 INSTALACION DE BISON: 1. NOS DESCARGAMOS LA HERRAMIENTA BISON DEL SIGUIENTE LINK:

http://gnuwin32.sourceforge.net/packages/bison.htm

2. AQUÍ EJECUTAMOS EL SETUP:

14

3. ACEPTAMOS EL ACUERDO CON LA LICENCIA Y SIGUIENTE:

4. AQUÍ PODEMOS VER LA RUTA DONDE VA A ESTAR INSTALDO EL PROGRAMA:

15

5. AQUÍ INSTALAMOS TODOS LOS RECURSOS NECESARIOS:

6. SE CREA LA CARPETA DONDE VA A ESTAR NUESTRA HERRAMIENTA BISON:

16

7. FINALMENTE INSTALAMOS:

17

9. AQUÍ ESTA COMPLETADA LA INSTALACION:

10. AQUÍ VEMOS EN LA CARPETA DE DESTINO NUESTRAS DOS HERRAMIENTAS FLEX Y BISON:

18

7.3 INSTALACION MINGW: 8. DESCARGAR LA HERRAMIENTA DEL SIGUIENTE SITIO:

http://sourceforge.net/projects/mingw/files/

9. EJECUTAMOS EL INSTALADOR:

19

10. AQUÍ NOS MUESTRA QUE SE VA A CREAR UN ICONO EN EL ESCRITORIO:

11. AQUÍ LEGIMOS USAR LOS PAQUESTES QUE ESTAN EN LOS REPOSITORIOS:

20

12. ACEPTAMOS LAS LICENCIAS:

13. AQUÍ NOS MUESTRA LA RUTA DONDE VA A SER INSTALADO:

21

14. AQUÍ SE CREA UN ACCESO DIRECTO:

15. AQUÍ ELEGIMOS LOS COMPONENTES QUE VAMOS A UTILIZAR:

22

16. AQUÍ FINALMENTE INSTALAMOS:

17. INSTALANDO BISON:

23

18. TERMINAMOS LA INSTALACION:

19. AQUÍ PODEMOS OBSERVAR EN LA CARPETA LOS COMPONENTES DE MINGW

24

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:

25

9. Ejemplos de la creación de un compilador utilizando Flex y

Bison.