Friday, February 25, 2005

Comentario3 Sobre Proyecto MicroC

Luego de haber resuelto los problemas que anteriormente describi, en comentarios anteriores ahora estoy listo para empezar el parser, del cual he tratado de hacerlo pero muy poco.
Los problemas que mencione anteriormente los resolvi gracias a que he estado leyendo la guia de ANTLR que se nos proporciono, y precisamente lo que deje de ultimo que fueron los comentarios para este fin de semana, ya que solo tenia la idea de como poder resolverlo pero al compilarlo me tiraba errores, y lo deje por ultimo y en el examen nos salio esa pregunta y pues creo no sacar
los puntos que costaba ya que si hubiese leido esa parte que deje de ultimo hubiese podido resolver la pregunta del examen, ya que lo que respondi es casi lo que tenia en mi proyecto y que me daba errores de compilacion, y en la guia encontre como resolver ese problema, que no por cerca era lo que ya tenia escrito pero creo que si la idea de como se deberian procesar los comentarios.
De la guia he leido tambien sobre el parser pero a eso todavia no le entendio muy bien hay muchas cosas de las no se como hacerlo, pero seguire investigando ya que el lexer practicamente a mi criterio funciona bien, lo que me falta averiguar en la guia es sobre como capturar los errores para que sea el programa que estamos haciendo el que desplega los errores.
Inquietudes:
1.Sobre la tabla de simbolos vista en clase, falta por ver contenido sobre eso o ya terminamos, porque no se me ocurre como ni donde se programa(se nota que ando perdido?).?
2.En la guia de ANTLR que se nos proporciono se habla sobre parser tree y en clase pues me he fijado que se menciono algo sobre eso, lo que quiero es saber si esa parte debe de resolverse para esta parte del proyecto o solo lexer y parser ya que eso me asusto porque vi diferente la gramatica utiliza en la guia, o para compiladores2.?
3.Con lo referente a los despliegues de errores basta con el mensaje que se desplegue en el catch{}?
como por ejemplo:
//el archivo .txt
class $ Inicio
{
método inicio()
{
Sistema.imprime("Hola mundo!"+nl);
exit(0);
}
}

//el catch del main
catch (TokenStreamException tse) {
System.err.println("Error leyendo tokens" + "Linea:" + tok.getLine() + " " + "Columna:" + tok.getColumn() + " " +tok.getText());
System.exit(0);

//resultado de la salida
Linea:2 Columna:1 class
Error leyendo tokensLinea:2 Columna:1 class

o se debe mostrar el error asi:
Linea:2 Columna:7 $

Este el arcivo .txt con el que probe el lexer, muy corto y sencillo pero funciona!?
class Inicio
{
método inicio()
{
Sistema.imprime("Hola mundo!"+nl);
exit(0);
}
}

void R()
{
int a;
a=1;
if(a==2)
{
cout<<"a es != 1";
}
else
{
cout<<"a es == 1";
}
}


Sobre el comentario que añadio sobre los 8 caracteres que no se deben repetir todavia no he leido nada sobre eso pero tratare de investigar, cuando dice "libros de texto" se refiere al del dragon y el del tigre??, si son esos tratare de revisarlos este fin de semana.

Friday, February 18, 2005

Comentario 2 sobre proyecto MicroC

Luego de haber tratado de resolver el problema que anteriormente tenia con identificado el cual pude resolver y funciona de maravilla y he procedido a continuar con el analisis lexico y definir algunas como las siguientes
BEGIN:"begin";
IF:"if";
THEN:"then";
ELSE:"else";
PRINT:"print";
END:"end";
INT:"int";
CHAR:"char";....
.... y otras mas de las cuales me ayudo al hacer la tarea2 asignada tambien termine con la gramaticas de operadores matematicos y los de igualdad.
El problema que se me presenta ahora es que si quiero usar "int" o "char" entonces al me genera un error de , me parece que como ya tengo la definicion de ID y tengo INT:"int" me parece que no sabe a cual se refiere, pero este fin de semana tratare de buscar la solucion a este impase que tengo, ya que si no resulevo esto no podre avanzar en la elaboracion total del proyecto, porque me parece que reconocer todos los tokens a cabalidad es necesario para que el parser no se vaya a equivocar a menos que lo que me hace falta es la programacion de parser, porque de ese si que no he tocado nada, pero seguire tratando e investigando.
Lo que todavia no he podido resolver es que el identificador no tenga mas de 12 caracteres y que no se repitan los primeros 8 caracteres, tampoco he podido resolver la gramatica para comentario, me han dicho que en la guia de ANTLR se encuentra, pero no he podido leerla, solo el principio pero me parece que alli hay buena ayuda y espero poder leerla este fin de semana, ya que la otra estaremos en examenes y se nos acaba el tiempo para este proyecto.

Comentario Tarea2

Sobre la tarea2 que nos fue asignada, yo copie la gramatica 3.11 tal y como estaba en el libro de Appel y la resolvi en el lexer ya que no entendia que es lo que tenia que hacer, hasta que se me explico que tenia que hacer algo parecido con lo visto en clases sobre la p.p.d.r y como hacer las llamadas practicamente recursivas, no esta muy facil que se diga pero tambien dificil, practivamente lo que tuvimos que hacer era el parser, o por lo menos asi lo veo lo yo, lo pude resolver pero tuve que desvelarme mi poquito ya que no me funcionaba del todo bien, creo que para el poquito de algoritmo que puse lo resolvia bien, no se si para otro no funcionara igual, en lo que se me proporciono ayuda fue en que en las funciones no podia hacer que funcionaran las funcion de .nextToken() hasta que me dijeron que en la declaracion de las funciones tenia que adicionar trows tokenstreamexception, ya que esta funcion de .nextToken() si me funcionaba en el main() pero no en las demas funciones hasta que me dijeron de ese truquito, y descubri que practicamente todo
tiene que ser declarado con static, el porque todavia no se pero espero descubrirlo pronto, o cuando termine de leer la guia de antlr que nos fue proporcionada.

Friday, February 11, 2005

Comentario 1 sobre proyecto

Despues de haber leido la definicion del proyecto al cual se tiene la idea de que hacer, pero no como realizarlo y despues de estar pensando como hacerlo empece a hacer el analisis lexico y tome como ayuda el laboratorio que habiamos realizado anteriormente, y resolvi la gramatica para digito, para letra e identificador que es en el que actualmente estoy tratando de resolver ya que al estar probando con cadenas de letras y digitos con sus combinaciones algunas combinaciones no funcionan y ahora con los espacios no he podido hacer que funcione y ademas que las palabras solo deben tener 12 caracteres lo que me hace falta validar y verificar tambien que los primero 8 caracteres no se repitan en otro identificador, pero creo que hay tiempo para poder resolver esto pero me siento muy confiado de que hay tiempo, pero no debo olvidar que se nos advierte que no dejemos esto para ultima hora porque no nos va a quedar tiempo para poder terminar.

Sunday, February 06, 2005

Comentario Definicion Proyecto Micro-C

Sobre el proyecto que se nos ha asignado en la clase que es micro-c para la semana pasada pero hasta el dia de hoy se debe comentar acerca de que nos parecio la definicion.

Empeze a leer el archivo y eran explicaciones de cosas muy parecidas a las vista en clase, y ya iba por la pagina 6 y me preguntaba que es lo que tenia que hacer porque todo lo primero es explicacion hasta que encontre los puntos a evaluar y nos lo lei solo vi que eran varios y me dije "esto va a estar peludo".

No esta muy claro algunas cosas sobre gramatica de micro-c, digo algunas porque hay unas a a las cuales si les entendi y otros que ni idea, espero se me despejen las dudas mas adelante y pueda resolver el proyecto.

El primer y los ultimos tres puntos de evaluacion no tengo ni idea que hacer, por lo menos con el primero creo que se refiere a conseguir e instalar MIPS, el cual si no me equivoco esta en el cd de datos que se nos brindo al principio del curso, los tres ultimos si ni idea los cuales espero puedan ser aclarados en el aula de clase para poder enmpezar a elaborar el proyecto, aunque se nos halla dado la definicion con tiempo para resolver el proyecto, como todo estudiante, y que por sobre todo se confia en lo que puede hacer,creo que muchos vamos a empezar unos dias antes que sea la fecha limite de entrega del proyecto, y mas con las otras clases que llevamos que nos dejan los trabajos para la misma fecha, pero que le vamos a hacer solo nos queda
esforzarnos y tratar de salir adelante y sino volver a llevar esta clase lo cual significa mucho tiempo perdido para graduarse cuanto antes.

Personalmente sera un bonito reto este proyecto, el cual espero poder sacar una buena nota, y sino pues no a seguir tratando mas adelante.