En este problema lo unico que me interesa son las definiciones de las clases. Igual, para el problema general, no queda otra que crear una imagen a partir de codigo fuente.
2010/12/21 Guillermo Schwarz <[email protected]>: > No es tan fácil como lo plantean. > En pascal exsite el mismo problema: no se puede definir un procedimiento si > este llama a otro que aun no esta definido. El problema es que si tengo 2 > funciones recursivas que se llaman una a la otra, entones no puedo poner > ninguna primero. La solución que se encontró en pascal fue hacer que las > funciones tengan "forward" es decir, poner el nombre de la función con sus > parámetros pero sin cuerpo, de modo que sirva para ser invocada (definir la > segunda función) y posteriormente definir la primera. > En smalltalk ocurre lo mismo por ejemplo la clase object tiene el método > asString que retorna un string, tiene el método equals que retorna un > booleano y el método hash que retorna un integer. De modo que se requiere > tener una manera de cargar una clase que hace referencia a otra que aun no > esta 100% definida. > Si hiciéramos lo mismo en smalltalk pero con las clases, ?funcionaria? > > La ventaja en smalltalk es que puedes tener primero todas las definiciones > de las clases y luego sus metodos, de modo que loque dije no es 100% > necesario. > Saludos, > Guillermo Schwarz. > El 20-12-2010, a las 22:35, Gaboto <[email protected]> escribió: > > Quizá estoy diciendo una obviedad, pero ¿eso no es ordenar topológicamente > un grafo? > Según tengo entendido hay algoritmos para eso. > > http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica > > 2010/12/20 Andres Valloud <[email protected]> >> >> A ver... supongan la siguiente jerarquia de clases: >> >> A1 >> B1 >> C1 >> C2 >> D1 >> B2 >> C3 >> D2 >> D3 >> D4 >> C4 >> >> Cuantas maneras hay de hacer un fileout de las definiciones de clase >> de tal manera que se pueda hacer un file in en otra imagen? O sea, el >> problema es que no se puede hacer un file out de C4 antes de B2 porque >> si no cuando se hace file in de C4, su superclase B2 no existe. >> >> Es mas o menos facil encontrar una cota inferior. Haciendo breadth >> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4. Por lo tanto, >> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file out >> correctamente. Sin embargo, cuando busque exhaustivamente, encontre >> 18900 ordenes diferentes. Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7. >> Entonces, pregunta... alguien sabe como calcular el numero de posibles >> file outs sin tener que buscar exhaustivamente? Es mas o menos claro >> que ese numero es el numero posible de traversals de un tree. Como se >> calcula eso? Hay algun resultado ya hecho? >> >> Andres. >> >> -- >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> >> http://www.clubSmalltalk.org > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > > http://www.clubSmalltalk.org > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > > http://www.clubSmalltalk.org -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] http://www.clubSmalltalk.org
