Generadores de parsers en Java
Soy un fun de los "parser generator" como yacc, o dicho de otro modo, me gusta hacer lenguajes que me ahorren trabajo y que sean utilizados por mis colaboradores.
Al principio los desarrollaba en C, luego cuando llegue a Java algunas versiones nuevas ya venian con soporte para generar parser en Java.
Al poco de entrar en este mundo conoci a Jack, que fue renombrado a javacc. Realmente era dificil de entender como trabajaba y no lo hacia como los LALR que solia utilizar. Hace 11 años no tenia el tiempo necesarioy no existia documentacion suficiente.
Encontre a cup que si trabaja en modo LALR y consegui documentacion para trabajar con el, pero empezo el boom de los XMLs, y para el tipo de lenguajes que necesitaba era mas adecuado hacer minilenguajes en XML que hacerse lo mismo en cup.
Han pasado bastantes años, y ya no suelo hacer minilenguajes porque o bien ya lo traen los framework o bien ya existe uno similar a lo que busco.
Ahora ha surgido la oportunidad de leer algun fichero en formato antiguo y pasarlo a otro mas moderno, me encuentro con varios parser 100 % java, hay otros que no son java pero te dan el parser Java:
cup, javacc, antlr y jikes.
Jikes no encuentro documentacion adecuada, ademas prefiero leer libros que pdfs, es de ibm.
ANTLR actualmente no tengo ningun libro, es el que parece mas potente, tambien es LL como javacc, pero necesita un runtime, tiene muchismas utilidades alrededor.
cup he encontrado un libro pero me parece que deberia intentar aprender algo esta vez. Sin runtime.
javacc es de Sun, he encontrado un libro y hace 11 años no pude con el, es un buen reto. Sin runtime.
Posted at 09:51PM dic 06, 2008 by Batch for the Java TM in General | Comentarios[5]
Buenas.
Te quería consultar una duda. Reconozco que siempre me ha atraído la idea de hacer un lenguaje de programación aunque por dos razones siempre lo he ido dejando. La primera que como soy Ingeniero Técnico en Informática de Sistemas, allí no nos han explicado nada al respecto. La segunda pues como tú, falta de tiempo.
¿Es difícil hacerlo? ¿Depende del lenguaje? Quiero decir, ¿con esas herramientas hacer un lenguaje totalmente orientado a objetos es más difícil que un lenguaje simple de guiones? Es por tener una idea general porque tampoco he encontrado ningún tutorial simple para diseñar lenguajes, aunque sea un tutorial pequeño para hacer un lenguaje simple.
Muchas gracias de antemano y un saludo,
José María
Enviado por José María en diciembre 07, 2008 a las 01:26 PM GMT+01:00 #
Nosotros siempre hemos utilizado el libro del dragon, http://javieraroche.com/2007/02/20/el-libro-del-dragon/ actualmente he conseguido unos de cup y de javacc en ingles.
Empezar desde cero es dificil, pero normalmente te haces con un gramatica y un lex y lo vas afinando.
Como siempre dado que es uno de mis temas favoritos podria sacar tiempo para ayudarte, siempre que el proyecto merezca la pena.
Hay gramaticas para casi todo. ANTLR parece que es el que mas tool tiene, pero por motivos personales quiero utilizar javacc.
Enviado por batch4j en diciembre 08, 2008 a las 11:17 AM GMT+01:00 #
Enviado por blogring.org en diciembre 08, 2008 a las 03:54 PM GMT+01:00 #
Hace unos años me cree un lenguaje de consultas y JavaCC me pareció mas sencillo de usar que ANTLR.
Enviado por logongas en diciembre 08, 2008 a las 09:50 PM GMT+01:00 #
Seguramente lo sea pero si vienes del mundo C y yacc, y en el primer proyecto serio en java te enfrentas con javacc cuando todavia era jack, te aseguro que es pelin dificil.
ANTLR no me gusta sobre todo el tema de generar para C# .
Enviado por batch4j en diciembre 09, 2008 a las 07:38 PM GMT+01:00 #