Lab 20241001 Leng Java
Lab 20241001 Leng Java
LABORATORIO 1
Gramática: Los siguientes son los tokens que hacen parte del conjunto a tener en cuenta:
Palabras claves: if-else, for, while, double, int, String, char, new, public, class,static,void,
Los operadores aritméticos: op-mult (*), op-sum(+), op-sust(-), op-div(/), op-asign(=), op-mod(%)
Los operadores aritméticos espciales: ++,--,+=,-=,*=,/=.
Delimitadores de inicio y final de bloques de instrucción: {,}
Final de instrucción: punto-y-coma(;)
Los paréntesis: parent-a ( ( ), parent-c ( ) ), corchete-a([), corchete-c(])
Los siguientes tokens: Constantes enteras, reales y cadenas (las cadenas están entre comillas dobles)
Los siguientes componentes léxicos: Identificadores (son las variables).
Los operadores relacionales Igual (==), Menor-igual (<=), Mayor-igual (>=), Diferente (<>), Mayor (>)
y Menor (<), Diferente (!=)
Los operadores lógicos: op-y ( && ), op-o ( || ), op-no ( !)
Se deben considerar los comentarios dentro de cada uno de los programas y tratarlos según las reglas del
análisis léxico.
Considerar los arreglos de cualquier dimensión, declaraciones de variables y cadenas en su función básica
de asignación.
No se debe considerar:
Manejo de cadenas
Manejo de funciones o subrutinas
Manejo de funciones predefinidas.
Operaciones de entrada/salida
Entrada: Un archivo llamado entrada.txt, el cual contenga un programa con las indicaciones anteriores
y basado en el lenguaje de programación Java.
Salida: Generación de un archivo de salida llamado salida.txt, el cual contendrá todos los componentes
léxicos que se pueden obtener del archivo programa de entrada. Los componentes léxicos
correspondientes a variables deben presentar en forma de tabla al final y numerados a partir de uno. Un
mismo identificador puede aparecer varias veces y tiene el mismo número. También en este archivo se
debe generar un listado de errores léxicos, si los hay.
Ejecución: El archivo de entrada.txt debe ser dado como un parámetro a continuación del nombre del
programa ejecutable. La salida del programa debe ser direccionada (>) a un archivo de salida llamado
salida.txt. Cada línea del archivo de entrada contiene sentencias Java. El archivo de entrada NO se debe
pedir en forma interactiva.
Ejemplo de ejecución:
.\LAB01 entrada.txt > salida.txt
Donde LAB01 es el programa ejecutable.
Consideraciones adicionales:
1. Generar dentro de la tabla de identificadores sólo una vez para las variables, aunque aparezcan más de
una.
2. Las palabras claves no son identificadores.
3. Cualquier símbolo diferente de los establecidos es un error y se debe señalar en el análisis léxico en el
archivo de salida.
4. Si hay error léxico en algún punto del archivo, se debe continuar el análisis hasta el final.
5. La entrada para el programa que se genere debe ser un archivo con un programa en Java y se debe
generar un archivo de salida como se describió anteriormente.
6. Debe entregar un manual de uso del programa, de no más de dos ( 2 ) páginas.
7. Todo esto lo deben desarrollar sobre el sistema operativo Linux Ubuntu.
Ejemplo:
TABLA DE IDENTIFICADORES
Hay 9 identificadores
Id1= AnyThing
Id2=main
Id3=args
Id4= i
Id5= j
Id6= c
Id7= cadena
Id8= z
Id9=k
2 errores léxicos
---------------------------------------------------------------
Observación: Lo que aparece en negrilla es el componente léxico y lo que sigue es el valor o lexema. Las
palabras claves no tienen otro valor de lexema, sino la misma palabra, pero en mayúscula.