|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - CiRRuS
26
« en: Sábado 26 de Febrero de 2005, 14:24 »
Buenos, puestos a hablar de distribuciones, yo te recomendaria alguna basada en RedHat (se notan mis preferencias  ). Podrías bajarte la Fedora Core 3, es maravillosa, traducida y se baja en un plis plas por bittorrent. En cuanto a la instalción es muy cómoda. Para cualquier cosa, asqui nos tienes Nos vemos
27
« en: Jueves 24 de Febrero de 2005, 22:25 »
Conocer no conozco ninguna, yo tuve que lidiar directamente con el manual de bison de la ultima version... sorry Los comentarios los reconoces en el nivel léxico (con FLEX) y por eso debes meter las acciones ahí. Para comprobar que reconoces los otros tokens debes incluir acciones a las reglas de producion, por ejemplo: A: B { printf("Se reconocio el token B\n"); } | C { printf("Se reconocio el token C\n"); } ;
Esto ya no era tan complicado  , seguro que lo tenias en el manual  Nos vemos
28
« en: Jueves 24 de Febrero de 2005, 20:30 »
Joer que cara tiene la gente... Nos vemos
29
« en: Jueves 24 de Febrero de 2005, 20:26 »
Mmmm, en ADA no se programar... pero la cuestion es el analisis sintactico asi que espero poder ayudarte. Una vez que tengas todo listo, como ya me has comentado, debes probar tu "compilador" con archivos escritos en ADA. Lo que debes hacer (al menos yo que yo entiendo) es "meterle" a tu analizador un programa en ADA y tu programa se encargará de analizarlo lexica y sintacticamente de tal forma que cada vez que reduzcas una regla de produccion debes emitir por la pantalla el tipo de instruccion en lenguaje ADA que es (ASIGNACION, BUCLE... ). No se si me explico. Por ejemplo, en C: int algo() { /* Prueba numero uno */ a = 1; if(a == 1) printf("Hola\n"); }
Tu salida debería ser: FUNCION COMENTARIO ASIGNACION IF FUNCION
Esto ultimo seria recomendable que se lo comentaras al profesor, para asegurarte de que realmente te esta pidiendo eso. Animo! Nos vemos
30
« en: Miércoles 23 de Febrero de 2005, 10:06 »
No se, a mi me huele a la forma de funcionar de scanf(). Esta función lee hasta el primer espacio en blanco o hasta encontrar retorno de carro (si pulsamos enter). Estoy quiere decir que si pones "hola mundo", scanf leera "hola" y en el buffer de entrada todavía quedará "mundo", lo que hará que el siguiente scanf no se pare y devuelva "mundo". ¿Puede ser así o me equivoco? Nos vemos
31
« en: Miércoles 23 de Febrero de 2005, 10:03 »
Estoy con diodo, en casi todos los lenguajes la cosa funciona así. Por cierto, ¿que no te lo dice hasta que no llegueis a polimorfismo? Vaya excusa mas mala... eso es que el no sabe que responderte. Nos vemos
32
« en: Domingo 20 de Febrero de 2005, 23:54 »
Veamos, segun el documento, lo de flex y bison te lo bajas y lo compilas. Ya has comentado que lo tienes listo. Bien, al parece el problema viene ahora con gcc -o verificador an_lex.c an_synt.c –ly
Pero fijate que 'verificador' es solo el nombre del ejecutable. Realmente solo vas a usar los archivos an_lex.c y an_synt.c, que son precisamente el analizador lexico y sintactico que ya has construido. Fijate que dice ...ya puedo construir algo parecido a un verificador (solo detección de errores)...
Lo de "...(solo deteccion de errores)..." va por los tiros que te comente, a partir de los archivos de FLEX y BISON pueden introducir instrucciones para detectar los errores. Esto lo aclara aún más: ...Si fuera necesario hacer alguna modificación para que la compilación sea perfecta, esta debe hacerse siempre sobre los ficheros .l y .y, siendo la generación de c un paso transparente...
Te mandan a los ficheros .l (de flex) y .y (de bison) para que modifiques directamente el analizador lexico y sintactico. He estado mirando los archivos de flex y bison del enlace que se facilita. Como ves, el fichero .l tiene en su cabecera un include del archivo "y.tab.h" que debe ser lo que debes construir con bison. Así que el archivo .tab.h que contruyas con bison debe ser precisamente ese "y.tab.h", lo mas normal es que te construya uno llamado grammar9x.tab.h, pues tu lo renombras a "y.tab.h" y luego compilas el ".l". Si te fijas el archivo FLEX ya incluye un main, que ademas ya llama al yyparse(), asi que tienes casi practicamente el trabajo hecho. Lo que te pide la practica es que a partir de eso, introduzcas deteccion de errores. No dudes en preguntar. Nos vemos  [/QUOTE] ...simplemente desde una descripción bnf y ebnf es un trabajo considerable que no vamos a abordar aquí... A mi si que me toco ese "trabajo considerable"... Que suerte has tenido!
33
« en: Domingo 20 de Febrero de 2005, 21:56 »
Mmmm, replanteandome dónde puede estar tu atrancamiento, estoy pensando que quizás no sepas por donde empezar a programar, es decir, donde empezar a ejecutar código. En el archivo de bison, después de la definición de la gramática, deberías colocar un main que llamara a la funcion yyparse, que haría comenzar el análisis sintáctico. El análisis se alimenta de la entrada estándar, pero puedes modificarlo usando la variable yyin. Durante el análisis, cada reducción de una regla de producción provocará que se ejecute el código de la acción semántica adjunto a dicha regla de producción. Nos vemos
34
« en: Domingo 20 de Febrero de 2005, 21:50 »
Antes que nada comentar que todo lo que he hecho es bajo linux, pero espero que se parezca, al fin y lal cabo los programas FLEX, BISON y YACC siempre han sido pa linux pero se han adaptado a otros sistemas. No termino de entender exactamente donde estas atascad@. Segun he leido, tienes definidos los componentes lexicos en el fichero .l para flex. Además ya tienes definida la gramática en el fichero .y para bison. Bien, ¿que te falta ahora?. Si necesitas solamente controlar los errores: - Para los errores léxicos debes "recogerlos" en el fichero flex, normalmente la ultima regla siempre suele "encajar" con la entrada (generalmente se pone un punto para que trague). Así que lo que encaje con esa regla, es un error léxico. Si quieres ser más meticulos@, prueba a usar las condiciones de arranque de FLEX. - Para los errores sintácticos es muy recomendable que uses el token error de bison. Debes incorporarlo en aquellas reglas de produccion de la gramática que "recojan" la mayoría de los errores de los usuarios. Una idea muy socorrida es ponerlo en la regla de produccion del simbolo inicial de la gramatica, asi al menos siempre recoges errores. Si en algun momento te piden que muestres la linea del error (todos los profesores suelen exigirlo  ) debes usar la variable yylineno de FLEX. Para usarla en BISON deberás declararla como externa. Si te tienes que meter con los atributos de la gramática recuerda que bisón no permite la definición de atributos heredados, pero sí que permite las acciones en mitad de la regla. Con lo de "...traduccion semántica..." me has asustado, espero que no sea lo que me estoy pensando, pues entonces la práctica es bassstante dificil. Espero haberte ayudado, para cualquier cosa, pregunta sin ningun reparo. Nos vemos  EDITO: Pequeñas modificaciones
35
« en: Viernes 18 de Febrero de 2005, 11:41 »
Si, ami tambien me toco "practicar" con eso  . En concreto se trataba de una práctica para hacer un interprete de comandos. En fin, supongo que a todos nos toca pasar por lo mismo  Nos vemos
36
« en: Viernes 18 de Febrero de 2005, 00:21 »
Creo que tu pregunta es demasiado general, ¿puedes especificar un poco mas? Nos vemos
37
« en: Miércoles 16 de Febrero de 2005, 01:36 »
¿El Rational Rose? Ese no es gratuito, al menos que yo sepa. De hecho la suite de Rational que antes comente cuesta un paston. Si eres universitario, quizas puedas acceder al programa. Nos vemos
38
« en: Martes 15 de Febrero de 2005, 13:56 »
Para el Lenguaje C:
C. Manual de referencia Ed.Mc. Graw Hill Aut. Herbert Schildt
Este es una maravilla, es el mejor. El mismo autor también tiene "C Guía de autoenseñanza", misma editorial. En el que va poco a poco metiendote en el C con ejercicios y tal. No esta mal. Nos vemos
39
« en: Martes 15 de Febrero de 2005, 13:53 »
Jeje, si te digo que yo en mis prácticas lo hay con el Microsoft Publisher del Office  Bueno, creo q también se puede hacer con el System Arquitech y con la suite de desarrollo de Rational. Nos vemos
40
« en: Domingo 13 de Febrero de 2005, 22:56 »
De nada!!! Bienvenido al foro  Nos vemos
41
« en: Domingo 13 de Febrero de 2005, 21:56 »
Deberías usar el descriptor stdin para la lectura desde la entrada estándar. Si todo va bien (como es normal) el interprete de comandos (DOS) le pasa la información que "sale" del programa a tu programa, y para ello, lo debes leer de la entrada estándar. Para poder leer de la entrada estándar puedes usar las funciones normales que trae C, pero puedes ser más espéficio con las funciones como fscanf, fprintf, etc. Ya nos cuentas. Nos vemos
42
« en: Sábado 12 de Febrero de 2005, 13:07 »
Jeje, a mi me enseñaron: "Un Dia Vi Una Vaca Vestida De Uniforme" Nos vemos
43
« en: Sábado 12 de Febrero de 2005, 13:02 »
Hola! que alegría saber que lo que uno hace es util!  Ahora mismo estoy de examenes, por eso tengo este proyecto un poco de parón (va ya un mes...). Pero en cuanto acabe quiero terminar esta implementación y comenzar otra. De esta implementación solo me faltaba terminar la documentación, pero ahora que me comentas eso, lo estudiaré para ver si podemos refinarla un poco más. Al fin y al cabo lo que quiero hacer es una implementación lo más útil para "todo el mundo", con las funciones básicas que siempre se necesitan. Después de la pila estoy pensando en una lista enlazada, que también es una estructura muy utilizada. Más adelante espero adentrarme en cosas "extrañas" del estilo de árboles B, tablas hash y demás. Todo a su tiempo. Nos vemos
44
« en: Viernes 11 de Febrero de 2005, 22:49 »
Que caña, no conocia esta web, realmente es bastante curiosa. Las tres cosas que pense las acerto: - Altavoz subwofer, acerto de lleno - Navaja de bolsillo - Perro (esta era facil, y le costo 15 preguntas!!!) Nos vemos
45
« en: Viernes 11 de Febrero de 2005, 22:37 »
Buscando en mi "Biblioteca Electrónica" he encontrado este: - "Aprendiendo UML en 24 horas" ¿Lo conoceis? Personalmente no lo he leido, divide el libro en capítulos según la hora, así que son 24 capítulos. Creo que lo conseguí por el Emule, pesa 14 megas. Nos vemos
46
« en: Viernes 11 de Febrero de 2005, 22:33 »
47
« en: Viernes 11 de Febrero de 2005, 18:25 »
Pues creo que es un salto incondicional (¿que condición se pondría?) de todas formas si te pica mucho la curiosidad puedes probar a generar el ensamblador a partir del codigo c que tengas. Nos vemos
48
« en: Viernes 11 de Febrero de 2005, 16:35 »
Para usar el goto en dev nohay nada de especial. Debes poner goto <etiqueta> donde etiqueta esta declarado en el procedimiento, te pongo un ejemplo: int main() { p: printf("HOLA\n"); system("pause"); goto p; }
Pero recuerda que el uso de GOTO es una "desgracia" (como diría uno de mis profesores) y para ello se ha inventado la programación estructurada. Por cierto, con poner la pregunta en un foro era suficiente, no hacía falta ponerla en los dos. Nos vemos
49
« en: Viernes 11 de Febrero de 2005, 12:39 »
Joer que bueno eres Jonathan! Eso es expresividad, educacion y animos! Bueno elbrodi2, creo que Jonathan te ha descrito perfectamente como funciona esto. Nos vemos
50
« en: Miércoles 9 de Febrero de 2005, 23:09 »
Yo suele usar el Pinnacle Studio 9, me vino con la videocamara y no esta nada mal. Ahora, eso sí, como va todo por software tarda un rato algunas veces. Te permite hacer muchas casas con los videos. Nos vemos
|
|
|