Está en la página 1de 12

DISEO DE COMPILADORES

CECILIA CORO

UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERA ESCUELA DE CIENCIAS

GENERAR COMPILADOR
DISEO DE COMPILADORES
CECILIA CORO

QUITO

ENERO-2012

Pgina 1

DISEO DE COMPILADORES

CECILIA CORO

NDICE

PRE REQUISITOS: _________________________________________________________ 3 GENERAR VARIABLE DE ENTORNO ___________________________________________ 3 GENERAR LA APLICACIN EJECUTABLE CON SMBOLO DE SISTEMA _________________ 7

Pgina 2

DISEO DE COMPILADORES

CECILIA CORO

PROCESO PARA GENERAR COMPILADORES CON LEX/YACC


PRE REQUISITOS:
1) Tener instalado DEV C++ en el sistema, no es recomendable trabajar con una aplicacin portable, porque est no tiene las libreras necesarias para generar el ejecutable. 2) Tener el compilador yacc guardado en el disco C.

GENERAR VARIABLE DE ENTORNO


Generamos una variable de entorno para comunicar la librera gcc (pertenece al DEV C++) con el sistema, para no tener problemas al momento de generar un ejecutable. 1) Abrir la ubicacin donde est instalado DEV C++. En este caso el disco C: Podemos darnos cuenta que en esta ubicacin ya est la carpeta yacc.

Pgina 3

DISEO DE COMPILADORES

CECILIA CORO

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 ubicacin de esta.

Pgina 4

DISEO DE COMPILADORES

CECILIA CORO

3) Nos dirigimos a las propiedades del sistema haciendo clic derecho opcin propiedades despus a la pestaa de opciones avanzadas aqu clic en el botn variables de entorno

Pgina 5

DISEO DE COMPILADORES

CECILIA CORO

4) En la opcin variables del sistema encontraremos la variable Path, clic en el botn modificar.

5) En la ltima posicin de la opcin valor de la variable escribimos ; (punto y coma) y pegamos la direccin copiada de gcc

Pgina 6

DISEO DE COMPILADORES

CECILIA CORO

GENERAR LA APLICACIN EJECUTABLE CON SMBOLO DE SISTEMA


1) Copiar los archivos con extensin .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 smbolo de sistemas. Aqu nos dirigimos a la raz con el comando cd..

Pgina 7

DISEO DE COMPILADORES

CECILIA CORO

3) Una vez en la raz 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

Pgina 8

DISEO DE COMPILADORES

CECILIA CORO

5) Ejecutamos el comando yacc d InfijoPosfijo1.y InfijoPosfijo1 es el nombre del archivo con extensin .y

Si aparece algn 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 automtica los archivos marcados en la imagen, son los archivos de yacc con extensin .c

Pgina 9

DISEO DE COMPILADORES

CECILIA CORO

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 automticamente con extensin .c

Pgina 10

DISEO DE COMPILADORES

CECILIA CORO

9) Para generar la aplicacin 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 aplicacin

10) Al ejecutar este comando se genera automticamente la aplicacin ejecutable de nuestro programa.

Pgina 11

DISEO DE COMPILADORES

CECILIA CORO

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 aplicacin ejecutable. Por esta razn es recomendable copiar todos los archivos en otra carpeta si se desea realizar los pasos anteriores para otro archivo con extensin .y asi como .l NOTA: Si el programa solo necesita un archivo yacc como por ejemplo calculadora avanzada o convertir entero a romano, se omite el paso 7) y en el paso 9) solo se ejecuta el comando gcc y.tab.c o NombreAplicacion.

Pgina 12

También podría gustarte