Universidad Nacional Mayor de San Marcos Decana de América, fundada en 1551Facultad de Ingeniería de Sistemas e Informática ALGORITMICA III Informe: Nº 1 Profesor: LIC. JORGE LUÍS CHÁVEZ SOTO Integrantes : Caso Casimiro, Carlos Júnior. Izquierdo Flores, Hugo Alonso. Medrano Abrahamzon, Ronaldo Nolasco Barrientos, Jonathan. Pizarro Aguado, Jonathan Smith. Rojas Romero, Verónica Lourdes. 08200087 08200104 08200208 08200212 08200124 08200185 Fecha de presentación: 31/05/10 2009 En un lenguaje de programación el léxico lo constituyen todos los elementos individuales del lenguaje. 1 Definición del Proyecto El proyecto es un programa informático que traduce un pseudocódigo estandarizado a un código (lenguaje) de alto nivel.DEFINICIÓN DE SU PROYECTO (EN QUÉ CONSISTE) Y OBJETIVOS DEL PROYECTO. Hacer de este proyecto una herramienta portable (puede usarse en cualquier plataforma informática). y a través de ellos formar las estructuras requeridas (sentencias simples y compuestas) por el usuario 2 Objetivo del Proyecto Enseñar al usuario a utilizar de manera correcta el estándar de pseudocódigo orientado a objetos y eventos. Marco Teórico del tema. reconociendo cada termino en una unidad básica llamada Token´s (componentes léxicos). Análisis Léxico: El léxico de un lenguaje natural o de programación esta constituido por todas las palabras y símbolos que lo componen. en este caso a lenguaje Java. Facilitar la interpretación de un pseudocódigo (Oloop) a un código de alto nivel (Java). . 3. Análisis Semántica: Un componente importante del análisis semántico es la verificación de tipos. Análisis Sintáctico: Obtiene una cadena de tokens del analizador lexicográfico (scanner) y verifica que esta secuencia pueda ser generada por la gramática del lenguaje fuente. Las unidades léxicas pueden ser: identificadores Literales numéricas operadores aritméticos Cadenas de caracteres operadores relacionales operadores lógicos comentarios Patrón. Se genera lógicamente un árbol de análisis (parse tree).Representa la regla para que una secuencia de caracteres sea considerada cierta unidad léxica. en su lugar se usan como alternativa.. Se representa por una constante. el compilador verifica si cada operador tiene operandos permitidos por la especificación del lenguaje fuente. Físicamente en la práctica nunca se construyen porque ocuparían mucho espacio.Unidad léxica Ccategorías en que se clasifican las cadenas de caracteres válidos en un lenguaje. dar un mensaje de error.El valor asociado a una categoría o unidad léxica. Por . PILAS. Token. Aquí.-El token tiene asociado un patrón. La principal tarea del analizador sintáctico no es comprobar que la sintaxis del programa fuente sea correcta. sino construir una representación interna de ese programa y en el caso en que sea un programa incorrecto. el compilador puede necesitar convertir el número entero a real. protected). En este caso. . prívate. por ejemplo. Alcances: Editar un lenguaje estandarizado. mas no ejecutara el código generado por el programa. Ahorrarnos la necesidad y el tiempo de tener que programar en un lenguaje de programación (Java). Limitaciones: Nuestro proyecto solo traducirá un pseudocódigo a un código ya conocido. Sin embargo.ejemplo. 4 Alcances y Limitaciones del proyecto. No reconocerá los modificadores de acceso (public. cuando un operador aritmético binario se aplica a un número entero y a un número real. la especificación del lenguaje puede permitir ciertas coerciones a los operando. Poder corregir después de haber pasado por el proceso de análisis correspondiente. las definiciones de muchos lenguajes de programación requieren que el compilador indique un error cada vez que se use un número real como índice de una matriz. Nolasco Barrientos. Recursos Técnicos: Software: IDE NetBeans 6. (Software y hardware) y logísticos.8. Pizarro Aguado. Izquierdo Flores. Verónica Lourdes. Ronaldo André. . Relación de Recursos Humanos: Caso Casimiro. ArgoUML. Rojas Romero. Hardware: Laptops. Hugo Alonso. Carlos Júnior. técnicos. Computadora de escritorio. Jonathan. Jonathan Smith. Microsoft Word Office 2007. Medrano Abrahamzon.-La relación de recursos humanos.5. Jorge Luís Chávez Soto. • 31/05/10: Entrega del 1er informe.El cronograma de actividades a desarrollar. • 03/07/10: Se implementara la primera fase de la interfaz grafica de nuestro proyecto. • 17/07/10: 2da y ultima fase de implementación de la interfaz grafica del proyecto.6. . usando diversas técnicas de la algoritmia.. • 10/07/10: Optimización del código de acuerdo a lo aprendido en clase. • 24/07/10: en esta ultima reunión del grupo se implementara archivos y se dará la finalización del proyecto de algorítmica. • 02/08/10: Entrega y exposición del trabajo ante el profesor a cargo del curso el Lic. • 26/06/10: Se seguirá con la implementación. • 19/06/10: Implementación del código expuesto en el prototipo del diagrama de clases. . El diagrama de clases propuesto.. .7. 8. por lo que se esta guardando una lista de las líneas de comando (todo el código). . Atributos: . también elimina los comentarios hechos en el pseudocódigo.líneas: Es una lista de listas de objetos Token. . Sintáctico y Semántica. una vez se haya terminado el análisis al pseudocódigo. en la cual se implementa la interfaz. • Clase Léxico: Se encarga de analizar léxicamente el pseudocódigo. -traducir: Este método crea nuestro código Java. . y estas cadenas son los errores léxicos del pseudocódigo.Diccionario de las clases (nombre de la clase. • Clase Traductor: Es el padre de las clases Léxico. esta tiene como atributo un objeto de la clase Traductor.operador: Es un arreglo de caracteres que guarda todos los operadores admitidos en el Oloop. Atributos: -errores: Es una lista de cadenas. Métodos: -fragmentar: Este método crea la lista de lista de Token a partir de la cadena que guarda todo el código. objetivo. La lista de token va a guardar toda una línea de comando.. descripción de los atributos y métodos de cada clase) Clase Ventana: Es la clase principal.palabraReservada: Es un arreglo de cadenas que guarda todas las palabras reservadas en el Oloop. -verificarLinea: Recibe una lista de objetos Token y verifica si es sintácticamente correcto ayudado con el atributo maquinas. nos retorna falso si el pseudocódigo tiene errores y verdadero en caso contrario. -inicializarMaquina: Es utilizada por el constructor de este método para inicializar la variable maquinas. • Clase Sintáctico: Se encarga de analizar sintácticamente el pseudocódigo. -añadirError: Se le añade al atributo errores en modo cadena. nos retorna falso si el pseudocódigo tiene errores y verdadero en caso contrario. -errores: Es una lista de cadenas. -verificarToken: Se le pasa como parámetro un objeto de la clase Token y se analiza. y estas cadenas son los errores léxicos del pseudocódigo. -mostrare rores: Muestra en pantalla los elementos del atributo errores. -añadirError: Se le pasa como parámetro un objeto de la clase Token y se le añade al atributo errores en modo cadena. retornando falso si el Token tiene errores y verdadero en caso contrario. Atributos: -maquinas: es una lista de lista de cadenas la cual nos ayudara a verificar el análisis sintáctico.Métodos: -analizar: se encarga de analizar léxicamente el pseudocódigo que es pasado a través de una cadena. . Métodos: -analizar: se encarga de analizar sintácticamente el pseudocódigo. y estas cadenas son los errores léxicos del pseudocódigo. . -inicializarMaquina: Es utilizada por el constructor de este método para inicializar la variable maquinas. -mostrarErrores: Muestra en pantalla los elementos del atributo errores. • Clase Semántica: Se encarga de analizar semánticamente el pseudocódigo.-mostrarError: Muestra en pantalla los elementos del atributo errores. -verificarLinea: Recibe una lista de objetos Token y verifica si es sintácticamente correcto ayudado con el atributo maquinas. Métodos: -analizar: se encarga de analizar sintácticamente el pseudocódigo. -verificarControl: Recibe como parámetro la lista de lista de Token y hacemos el uso de pilas para verificar y constatar los errores de sentencia y de cierre respectivamente. Atributos: -maquinas: es una lista de lista de cadenas la cual nos ayudara a verificar el análisis sintáctico. nos retorna falso si el pseudocódigo tiene errores y verdadero en caso contrario. -añadirError: Se le añade al atributo errores en modo cadena. -errores: Es una lista de cadenas. . Atributos: -informacion: Es una cadena que guarda al token en si. Clase Traductor Atributos Operador PalabraReservada Lineas Metodos Fragmentar Traducir Fclase .Presentación del oLoop de la clase. Atributos: -nodo: -L: -val: Métodos: -agregarNodo: -obtenetValor: 9. • Clase Lista: Es una clase genérica que implementa una lista enlazada simple. palabra reservada o símbolo. -cad: Es una cadena que guarda si el token es un identificador.• Clase Token: Se encarga de guardar los componentes léxicos. > InicializarMaquina VerificarLinea AñadirError MostrarErrores VerificarControl Fclase .Clase Lexico viene-de Traductor Atributos Errores Metodos Analizar --> VerificarToken --> AñadirError MostrarErrores Fclase Clase Sintactico viene-de Traductor Atributos Maquinas Errores Metodos Analizar -. > obtenerCaracter -.> Fclase .> VerificarLinea InicializarMaquina AñadirError MostrarErrores Fclase Clase Token Atributos Inf Carácter Metodos Obtenerinf -.Clase Semantico viene-de Traductor Atributos Maquinas Errores Metodos Analizar -. (Conjunto de ventanas del Proyecto) ..Diseño de la arquitectura Gráfica del Proyecto.Clase lista Atributos Nodo Lista Val Metodos agregarNodo obtenerValor Fclase 10. se encargo del diseño de la interfaces. Pizarro Aguado Jonathan Smith. técnicos y logísticos. alcances y limitaciones del proyecto.estuvo en el desarrollo del diagrama de clases. alcances y limitaciones del proyecto y la relación de recursos humanos. alcances y limitaciones del proyecto y la relación de recursos humanos. definición del proyecto. Caso Casimiro Carlos Júnior. En este 1º Entregable. técnicos y logísticos. definición del proyecto y diccionario de las clases. Rojas Romero Verónica Lourdes. que a continuación expongo: Izquierdo Flores Hugo. marco teórico. diccionario de las clases y el diseño de la interfase. . me da gusto informarle que todos los integrantes ayudaron en las distintas partes a desarrollar.-estuvo en el desarrollo del diagrama de clases.-se encargo del diseño de la interfaces.. para informarle sobre el desempeño de los integrantes de este equipo de trabajo.INFORME Estimado profesor Jorge Luís Chávez.. se dirige a usted Hugo Alonso Izquierdo Flores coordinador del grupo. Nolasco Barrientos Jonathan. presentación del oLoop de la clase y la relación de recursos humanos. técnicos y logísticos. Medrano Abrahamzon Ronaldo André.-se encargo del diseño de la interfaces.-Alonso como cabeza de grupo estuvo básicamente en el desarrollo del diagrama de clases. definición del proyecto y diccionario de las clases.