2/26/2008

INSTALAR JLEX Y CUP EN LINUX

Desde hace ya un buen tiempo que uso las herramientas Jlex (analisis lexico) y Cup (analisis sintactico LALR) para las clases de compiladores 1 y 2. El dia de hoy formatie mi computadora asi que fue necesario que hiciera todo el procedimiento de instalacion de estas herramientas de modo que se me ocurrio dejar un step-by-step de como hacerlo (ya que tambien varios amigos me han pedido ayuda en este tema).
Usando mi fiel Ubuntu 7.1 fue muy facil, aqui estan los pasos:

1. Instalar java:

Escribimos en consola o bien buscamos los paquetes en synaptic
- sudo apt-get install sun-java6-jdk
- sudo apt-get install sun-java6-jre
- sudo apt-get install sun-java6-bin
- sudo apt-get install sun-java6-plugin
Al momento de terminar la instalacion solo debemos aceptar los terminos que se proponen y presionar siguiente.

2. Instalar JLex y cup:

- sudo apt-get install jlex
- sudo apt-get install cup

3. Configuracion de variables de entorno:


Podriamos decir que en este caso una variable de entorno se define como una variable que guarda direcciones de directorios que necesita utilizar el computador en algun momento dado en un lugar especifico. Comunmente usamos el PATH(en este caso CLASSPATH) indicandole las direcciones de busqueda para programas ejecutables.
En consola escribimos(ubicados en el lugar donde estan nuestros archivos .lex y cup):
export CLASSPATH=.:/usr/share/java/JLex.jar:/usr/share/java/cup.jar
para comprobar que exportamos bien la variable de entorno escribimos:
echo $CLASSPATH
Por ultimo compilamos de la siguiente manera:
jlex lexico.lex
cup sintactico.cup

(recuerden renombrar el archivo lexico.lex.java a Yylex.java)
Aqui les dejo una imagen de como quedo mi archivo ejecutable.sh:



Ahora a trabajar con gramaticas!!! :)

13 comentarios:

Juls dijo...

Tan bonito que es ubuntu!!!
hasta trae scripts para eso.....

Javihm77 dijo...

Yo lo instalé desde synaptic sin ningún problema, repaja, ni siquiera configuré las variables de entorno. Ubuntu es repaja, no se xq la mara sigue usando esa shit d windows....

ENIO DE LEON dijo...

lo que pasa es que la gente no saben nada del tema... y nosotros somos los encargados de guiarlos...

Anónimo dijo...

Muchas gracias por el artículo, está simple y bien explicado. Ha sido
súmamente útil para mí.

ENIO DE LEON dijo...

Que bueno que haya sido de tu ayuda... exitos en todo...

Anónimo dijo...

y el famoso archivo este lexico.lex de donde lo sacas? porque no viene en la instalacion ni nada de nada...

O acaso tienes que irte a la pagina del proyecto Jlex y bajarte el main.java para compilarlo y crearlo desde el principio?

A todo esto... soy un poco nuevo y no tengo ni papa :P

ENIO DE LEON dijo...

Este archivo puede tener cualquier nombre con la unica condicion que su extension sea .lex, es un archivo para generar toquens ayudando a nuestra comprobacion lexica (solo permite el ingreso de las palabras o simbolos que acepta un lenguaje... por ejemplo si quisieras usar esto para aceptar un archivo de entrada que permita unicamente la asignacion de variables de esta forma: int identificador1,variable1,x; entonces deberias de crear tu aceptacion para el toquen 'int', otra para ',', otra para ';' y otra para los nombres de las variables que serian identificadores... serian los unicos que aceptaria... y si viniera otro simbolo... digamos un '$' seria un error lexico.)
En si este trabajo lo hace unicamente JLex... y el archivo .lex lo tenes que crear tu mismo... espero te sirva la ayuda... si necesitas mas ayuda avisame ok...

Anónimo dijo...

Puta que buena mierda
Gracias sirvio de Ayuda

p.d: Ese julio que marica las cosas que coloca, el chapu ni se diga solo con verle la pose y el enio jajajajajajaja que cague de risa.

Anónimo dijo...

Que IDE recomiendas para poder utlizar con Jlex y Cup, ya que en el proyecto que tenemos que hacer ahora nos dijeron que usaramos estos, antes habiamos usado flex y bison, pero es codigo C y eso es un cacho mas trabado

ENIO DE LEON dijo...

Yo te recomendaria que utilizaras netbeans, la ultima version.

Anónimo dijo...

me gustaria saber donde se guarda el archivo lexico.lex.java para cambairle a Yylex.java en ubuntu

Anónimo dijo...

Muchas gracias por el artículo.

Anónimo dijo...

Hola soy nuevo en esto donde consigo esos archivos .lex y cup que mencionaste?

En consola escribimos(ubicados en el lugar donde estan nuestros archivos .lex y cup):