Que es lo que "No es tan facil como lo plantean"? El problema que planteó Andrés habla de cargar clases de manera que siempre esté cargada la superclase que corresponda. El grafo de este tipo de dependencias es un arbol y como tal no tiene ciclos, entonces no existe el problema que vos planteas. Independientemente de eso, lo que pregunta andrés se podría traducir, en teoría de grafos, a calcular la cantidad de órdenes topológicos que tiene un árbol dado.
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> > http://es.wikipedia.org/wiki/Ordenaci%C3%B3n_topol%C3%B3gica > > 2010/12/20 Andres Valloud < <[email protected]> > [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]> >> [email protected] >> To unsubscribe from this group, send email to >> <clubsmalltalk%[email protected]> >> [email protected] >> >> <http://www.clubSmalltalk.org>http://www.clubSmalltalk.org > > > -- > To post to this group, send email to <[email protected]> > [email protected] > To unsubscribe from this group, send email to > <[email protected]> > [email protected] > > <http://www.clubSmalltalk.org>http://www.clubSmalltalk.org > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected]<clubsmalltalk%[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
