Acerca de...
jueves, 3 de febrero de 2011
Peligran puestos laborales por fraude digital
miércoles, 2 de febrero de 2011
javaCC
Java Compiler Compiler es un generador de analizadores sintácticos de código abierto para el lenguaje de programación Java. JavaCC es similar a Yacc en que genera un parser para una gramática presentada en notación BNF, con la diferencia de que la salida es en código Java. A diferencia de Yacc, JavaCC genera analizadores descendentes (top-down), lo que lo limita a la clase de gramáticas LL(K) (en particular, la recursión desde izquierda no se puede usar). El constructor de árboles que lo acompaña, JJTree, construye árboles de abajo hacia arriba (bottom-up).
JavaCC está licenciado bajo una licencia BSD.
En 1996, Sun Microsystems liberó un parser llamado Jack. Los desarrolladores responsables de Jack crearon su propia compañía llamada Metamata y cambiaron el nombre Jack a JavaCC. Metamata se convirtió en WebGain. Después de que WebGain finalizara sus operaciones, JavaCC se traslado a su ubicación actual.
ANTLR
¿Qué es y cómo funciona ANTLR?
ANTLR es un programa está escrito en java, por lo que se necesita alguna máquina virtual de java para poder ejecutarlo. Es software libre, lo que quiere decir que al descargarlo de la página oficial (http://www.antlr.org) obtendremos tanto los ficheros compilados *.class como el código fuente en forma de ficheros *.java.
ANTLR es un generador de analizadores. Mucha gente llama a estas herramientas compiladores de compiladores, dado que ayudar a implementar compiladores es su uso más popular. Sin embargo tienen otros usos. ANTLR, por ejemplo, podría servir para implementar el intérprete de un fichero de configuración.
ANTLR es capaz de generar un analizador léxico, sintáctico o semántico en varios lenguajes (java, C++ y C# en su versión 2.7.2) a partir de unos ficheros escritos en un lenguaje propio.
Dicho lenguaje es básicamente una serie de reglas EBNF y un conjunto de construcciones auxiliares.
ANTLR genera analizadores pred-LL(k), y él mismo utiliza un analizador pred-LL(k) para leer los ficheros en los que están escritas las reglas EBNF. ANTLR admite acciones en sus reglas, además de otras prestaciones como paso de parámetros, devolución de valores o herencia de gramáticas.
En el ejemplo siguiente se describe un programa de análisis en ANTLR, que puede reconocer expresiones de la suma en la forma “1+2+3”:
opciones generales de //, por ejemplo la opción de la lengua
objetivo
{
LENGUA = “CSharp”;
}
// que sigue que la clase
SumParser del programa de análisis amplía programa de análisis;
opción
{
k = 1;
}
definición de // de una declaración
de la expresión: NÚMERO ENTERO (NÚMERO ENTERO DE PLUS^) *;
// aquí la clase
SumLexer de Lexer amplía Lexer;
opción
{
k = 1;
}
MÁS : '+';
DÍGITO : (“0”… “9”);
NÚMERO ENTERO: (DÍGITO) +;
El listado siguiente demuestra la llamada de los programas de análisis en un programa:
Lector del lector del texto;
el lector del texto de // (...) con indicaciones llena
SumLexer más lexer = SumLexer nuevo (lector);
SumParser más programa de análisis = SumParser nuevo (más lexer);
parser.expression ();