Generar Compiladores Lex-yacc

12
UNIVERSIDAD CENTRAL DEL ECUADOR. Facultad de Ingeniería, Ciencias Físicas y Matemática. Ingeniería en Informática. LENGUAJES Y COMPILADORES. Trabajo. Nombre: Galo Josué Pazmiño Navarrete. Curso: Quinto “Segundo”. Fecha: 22 – Ene – 2013. Tutor: Ing. Rosero. Quito 2012 – 2013

Transcript of Generar Compiladores Lex-yacc

Page 1: Generar Compiladores Lex-yacc

UNIVERSIDAD CENTRAL DEL ECUADOR.  

 

 

Facultad de Ingeniería, Ciencias Físicas y Matemática. 

 

Ingeniería en Informática. 

 

LENGUAJES Y COMPILADORES. 

 

Trabajo. 

 

Nombre:  Galo Josué Pazmiño Navarrete. 

Curso:    Quinto  “Segundo”. 

Fecha:   22  – Ene – 2013. 

Tutor:    Ing. Rosero. 

Quito 

2012 – 2013

Page 2: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          2 

 

                

ÍNDICE    

PRE REQUISITOS:     3  

GENERAR VARIABLE DE ENTORNO     3  

GENERAR LA APLICACIÓN EJECUTABLE CON SÍMBOLO DE SISTEMA     7 

Page 3: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          3 

 

PROCESOPARAGENERARCOMPILADORESCONLEX/YACC

   

PREREQUISITOS:1) Tener instalado DEV C++ en el sistema, no es recomendable trabajar con una

aplicación portable, porque está no tiene las librerías necesarias para generar el ejecutable.

 2) Tener el compilador yacc guardado en el disco C.

 

 GENERARVARIABLEDEENTORNOGeneramos una variable de entorno para comunicar la librería gcc (pertenece al DEV C++) con el sistema, para no tener problemas al momento de generar un ejecutable.

 1) Abrir la ubicación donde esté instalado DEV C++. En este caso el disco C:

Podemos darnos cuenta que en esta ubicación ya está la carpeta yacc.  

Page 4: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          4 

 

2) Abrimos la carpeta Dev-Cpp (marcada arriba), dentro de esta ubicamos la carpeta bin la abrimos y buscamos el gcc, clic derecho propiedades sobre gcc y copiar la ubicación de esta.

 

Page 5: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          5 

 

3) Nos dirigimos a las propiedades del sistema haciendo clic derecho opción propiedades después a la pestaña de opciones avanzadas aquí clic en el botón variables de entorno

   

Page 6: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          6 

 

4) En la opción variables del sistema encontraremos la variable Path, clic en el botón modificar.

 

5) En la última posición de la opción valor de la variable escribimos ; (punto y coma) y pegamos la dirección copiada de gcc

Page 7: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          7 

 

GENERARLAAPLICACIÓNEJECUTABLECONSÍMBOLODESISTEMA 

  

1) Copiar los archivos con extensión .y (archivo escrito en yacc) y .l (archivo escrito en lex si tuviera ) en la carpeta bin que está dentro de la carpeta yacc.

 

 

2) Abrimos la ventana de símbolo de sistemas. Aquí nos dirigimos a la raíz con el comando cd..

 

Page 8: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          8 

 

3) Una vez en la raíz escribimos los comandos para activar yacc. SET PATH=c:\yacc\bin;%PATH% SET BISON_SIMPLE=c:\yacc\bin\bison.simple SET BISON_HAIRY=c:\yacc\bin\bison.hairy

 

 

4) Nos direccionamos a la carpeta bin con el comando cd yacc\bin  

Page 9: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          9 

 

5) Ejecutamos el comando yacc –d InfijoPosfijo1.y InfijoPosfijo1 es el nombre del archivo con extensión .y

 

Si aparece algún conflicto como este caso, el compilador de dev c++ se encargara de solucionar dicho problema.

 

  

6) Tome en cuenta que al momento de presionar ENTER en el comando anterior se creara de forma automática los archivos marcados en la imagen, son los archivos de yacc con extensión .c

Page 10: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          10 

 

7) Escribimos el comando lex InfijoPosfijo.l para el archivo lex  

 

8) De igual manera al momento de ejecutar el comando anterior se crea el archivo lex.yy automáticamente con extensión .c

 

Page 11: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          11 

 

9) Para generar la aplicación ejecutable se escribe el comando gcc y.tab.c lex.yy.c –o ConvertirInfijoPosfijo

y.tab.c archivo generado para yacc lex.yy.c archivo generado para lex -o nos permite poner nombre a la aplicación

 

  

10) Al ejecutar este comando se genera automáticamente la aplicación ejecutable de nuestro programa.

Page 12: Generar Compiladores Lex-yacc

    Universidad Central Del Ecuador.  Ingeniería en Informática       Lenguajes y Compiladores 

             Generación de Compiladores con LEX/YACC                              Galo Pazmiño                                                                                                          12 

 

 

11) Cabe recalcar que y.tab.c asi como lex.yy.c son nombres por defecto que siempre se crean al ejecutar los comandos anteriores y son necesarios para crear la aplicación ejecutable. Por esta razón es recomendable copiar todos los archivos en otra carpeta si se desea realizar los pasos anteriores para otro archivo con extensión .y asi como .l

 NOTA: Si el programa solo necesita un archivo yacc se omite el paso 7) y en el paso 9) solo se ejecuta el comando gcc y.tab.c –o NombreAplicacion.