Вы находитесь на странице: 1из 8

Diseo de Compiladores.

COMPILADORES
Lex genera el cdigo C para un analizador lxico, y yacc genera el cdigo para un parser.
Tanto lex como yacc toman como entrada un archivo de especificaciones que es tpicamente
ms corto que un programa hecho a medida y ms fcil de leer y entender. Por convencin,
la extensin del archivo de las especificaciones para lex es .l y para yacc es .y. La salida de
lex y yacc es cdigo fuente C. Lex crea una rutina llamada yylex en un archivo llamado
lex.yy.c. Yacc crea una rutina llamada yyparse en un archivo llamado y.tab.c.
Estas rutinas son combinadas con cdigo fuente C provisto por el usuario, que se ubica
tpicamente en un archivo separado pero puede ser ubicado en el archivo de especificaciones
de yacc. El cdigo provisto por el usuario consiste de una rutina main que llama a yyparse,
que en su momento, llama a yylex.
El siguiente diagrama permite observar los pasos en el desarrollo de un compilador usando
lex y yacc:

nombre_archivo.l

lex.yy.c

Especific.
Lex

Especific.
Yacc

lex

yacc

yylex()

yyparse()

Compilador C

nombre_archivo.y

y.tab.c

Rutinas C

Libreras

COMPILADOR

Para llegar a la construccin del compilador el usuario debe tener instalados el compilador
MINGW y el paquete de YACC, estos componentes se encuentran dentro de la carpeta
Compiladores Lex & Yacc del CD.

Instalacin.

Diseo de Compiladores.

INTALACIN DEL PAQUETE YACC.


PASOS
Copie la carpeta yacc al disco local C.
Asumiendo que usted ha instalado este paquete en el directorio c:\yacc, prepare su ambiente
de la siguiente manera:
Bajo la consola DOS de Windows escriba el siguiente PATH, como se ilustra en la figura
A.
SET PATH=c:\yacc\bin;%PATH%
SET BISON_SIMPLE=c:\yacc\bin\bison.simple
SET BISON_HAIRY=c:\yacc\bin\bison.hairy
Esta versin de YACC y LEX funcionan sin problemas con la versin del compilador
MINGW32.

FIGURA A
Esta es una distribucin mnima del compilador MINGW solo soporta el modo consola de
Windows.
Su uso bsicamente es para compilar algunos ejemplos sencillos y muy til para el proyecto
de lenguajes y compiladores. Si usted ya tiene instalada la versin completa del mingw, no
tiene sentido usar esta versin
-

Su ventaja principal es su pequeo tamao que facilita su descarga, y traslado de una


mquina a otra sin complicaciones.

Instalacin.

Diseo de Compiladores.

INTALACIN DEL COMPILADOR MGWCON.


Para instalar abra la carpeta Compiladores Lex & Yacc del CD, copie la carpeta llamada
"\MgwCon" en el disco local C.

En XP se puede, ejecutando el comando SET PATH=... estando en el modo consola de Dos,


ponga la ruta en el PATH : como se ilustra en la figura B
SET PATH=%PATH%;C:\MgwCon\Bin;

FIGURA B
Asumimos que instalo el compilador en la unidad C: aunque podra haber sido cualquier
otra.
Usted puede tener otra distribucin del mingw instalada en su disco duro (normalmente
\MinGW) no habr problemas ya que trabajarn en forma independiente.

Instalacin.

Diseo de Compiladores.

TRABAJANDO CON EL PAQUETE YACC


Dentro de la carpeta TRABAJO del CD se encuentra la carpeta de COMPILADOR
BASICO dentro de la cual encontrar los archivos escritos en lex y yacc con los nombres
de COM_BAS.l y COM_BAS.y.

Los dos ltimos archivos (COM_BAS.L y COM_BAS.Y) copielos a la direccin c:\yacc\bin


anteriormente instalada.

Bajo consola DOS coloque la direccin o ruta donde se encuentran los archivos
(COM_BAS.L y COM_BAS.Y) mediante comandos bsicos como CD

Instalacin.

Diseo de Compiladores.

FIGURA CUna vez en la carpeta c:\yacc\bin escriba <lex com_bas.l> como se muetra en la
figura C y se crear el archivo lex.yy.c, donde lex.yy.c es una representacin tabulada de
un diagrama de transiciones construido a partir de las expresiones regulares de
COM_BAS.L.
Las acciones asociadas a las expresiones regulares de COM_BAS.L son partes de cdigo en
C y se transfieren directamente a lex.yy.c.
Ahora escriba <yacc d com_bas.y> se especifica que d es para generar un fichero de
cabecera llamado y.tab.h.
COM_BAS.Y constituye una especificacin en yacc, luego al someter COM_BAS.Y al
compilador yacc so obtiene un programa en C llamado y.tab.c.El archivo y.tab.c es el
analizador sintctico en C incluye adems otras rutinas de apoyo que pudo generar el
usuario.

Instalacin.

Diseo de Compiladores.
Copie todos los archivos (COM_BAS.L, COM_BAS.Y, lex.yy.c, y.tab.c, y.tab.h) a la
direccin c:\mgwcon\bin.

Bajo consola DOS, para generar el programa ejecutable .exe deber escribir la siguiente
lnea de cdigo, (asegrese de encontrarse en la carpeta c:\mgwcon\bin en DOS).

Se puede cambiar el nombre del programa .exe solamente indicando otro nombre de su
eleccin por ejemplo gcc y.tab.c lex.yy.c o COMPILADOR.exe.
Para nuestro ejemplo el programa ejecutable tendr nombre com_bas.exe como se muestra
en la siguiente figura.

Instalacin.

Diseo de Compiladores.

Hgalo ejecutar y compruebe los resultados

Expresiones que soporta com_bas


Los operadores de uso son "+", "-", "*", "/", div, mod y el uso de parntesis "(" y ")"
para alterar la precedencia de evaluacin.

Instalacin.

Diseo de Compiladores.

Para terminar presione <Ctrl>+Z (Fin de Archivo)


Errores
Si esta trabajando en modo DOS y aparece un error como el siguiente debe volver a escribir
las lneas de cdigo del PATH. estas se encuentra en la figura A y figura B

Instalacin.

Вам также может понравиться