Ejercicio Java : Analizador Léxico
Desarrollar una aplicación teniendo en cuenta las especificaciones léxicas del compilador MUSIM.
Con el objeto de clarificar algunos de los conceptos sobre diseño de compiladores, se desea construir un ANALIZADOR LÉXICO de un lenguaje muy simple (¡de alto nivel!), que se denominará MUSIM (MUy_SIMple).
Se definirá el lenguaje indicando sus componentes léxicos, la gramática que describe su sintaxis, y las especificaciones semánticas.
El lenguaje MUSIM tiene los siguientes tipos de componentes léxicos o tokens: - Identificadores, que sólo son nombres de variables y están compuestos por una única letra minúscula de rango a..z. - Constantes numéricas de un sólo dígito, de rango 0..9. - Operadores: +, -, *, / y %. - Símbolo de asignación: = (igual). - Paréntesis: ( y ). - Separador de sentencias: ; (punto y coma). - Indicadores de principio y fin de bloque: { y }. - Palabras reservadas, están formadas por una letra mayúscula. Tan sólo son tres: R (lectura), W (escritura) y M (programa principal). Puede observarse que en este lenguaje todos los tokens son de un sólo carácter.
MUSIM sólo tiene un tipo de datos: los enteros. Todos los operadores se aplican sobre enteros y los resultados son de tipo entero. Así el operador división / representa la división entera. Para obtener una división exacta se obtiene el cociente con el operador / y el resto con el operador módulo %.
Con el objeto de clarificar algunos de los conceptos sobre diseño de compiladores, se desea construir un ANALIZADOR LÉXICO de un lenguaje muy simple (¡de alto nivel!), que se denominará MUSIM (MUy_SIMple).
Definición del lenguaje MUSIM
Se definirá el lenguaje indicando sus componentes léxicos, la gramática que describe su sintaxis, y las especificaciones semánticas.
Definición de los componentes léxicos
El lenguaje MUSIM tiene los siguientes tipos de componentes léxicos o tokens: - Identificadores, que sólo son nombres de variables y están compuestos por una única letra minúscula de rango a..z. - Constantes numéricas de un sólo dígito, de rango 0..9. - Operadores: +, -, *, / y %. - Símbolo de asignación: = (igual). - Paréntesis: ( y ). - Separador de sentencias: ; (punto y coma). - Indicadores de principio y fin de bloque: { y }. - Palabras reservadas, están formadas por una letra mayúscula. Tan sólo son tres: R (lectura), W (escritura) y M (programa principal). Puede observarse que en este lenguaje todos los tokens son de un sólo carácter.
Definición semántica
MUSIM sólo tiene un tipo de datos: los enteros. Todos los operadores se aplican sobre enteros y los resultados son de tipo entero. Así el operador división / representa la división entera. Para obtener una división exacta se obtiene el cociente con el operador / y el resto con el operador módulo %.
Post a Comment