El día 16 de noviembre de 2010 23:29, Milton Galo Patricio Inostroza Aguilera <[email protected]> escribió:
> en realidad hace tiempo que leí estos artículos y me ayudaron mucho > :-)...ahora que estoy estudiando sistemas de tipos, la teoría dice que > en un lenguaje con tipeo dinámico lo único que existe en tiempo > estático es un solo tipo y que en tiempo de ejecución los nodos del > AST están marcados con una etiqueta que dicen a que clase de valor > pertenecen: entero, lista, función, etc....habría que ver como está > implementado el interprete de python :-) Este modo de ver los tipos me "chirría" mucho. Que los nodos AST tengan "referencias" a objetos no implica que la "referencia" sea el tipo "estático" existente. Para cada tipo "estándar" hay siempre en todo momento sus elementos vacíos ( "" , [] , () , 0.0 ), además de los enteros del -1 al 99 (con True y False como subtipos) y algunos singletones como None. El código AST, tal como dice su nombre, no es más que una "abstracción" que no tiene en cuenta el modelo de tipos real, sobre todo cuando la persistencia de los objetos no está determinada por la persistencia del propio árbol AST. Los tipos estándar de python se definen como "instancias" de la clase "type", y en todo momento están creadas las instancias 'int', 'bool', 'long', 'float', etc. etc., por lo que se puede afirmar que existe un modelo de tipos de datos "estático", previo a la ejecución del código. El tipado dinámico viene a significar que del comportamiento de un objeto no podemos inferir su tipo. Dicho de otro modo, el comportamiento de un objeto se puede obtener por adquisición (instanciando una clase/tipo) o por implentación de un "interface" que simule el tipo (patrones delegación, factoría,... == metaclase). En todo caso, la riqueza de tipado de datos va mucho más allá del análisis sintáctico que pueda realizarse estáticamente. _______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
