Re: [Programación] Re: [Programación] La bola de cristal en la programación (Era: Ayuda con código para procesar textos)
Angel Arancibia
angel.arancibia en gmail.com
Mie Feb 25 10:30:13 ART 2009
El día 25 de febrero de 2009 10:09, Horacio Castellini
<horacio9573 en yahoo.com.ar> escribió:
> Para retomar el topic, relacionado con el tema de la introspección sujerida... lo que pude avieriguar es esto...
> ---------------------------------------
> Es la capacidad que tiene en un lenguaje de programación en que sus
> elementos pueden obtener información sobre sí mismos y sobre el
> sistema sobre el cual se ejecutan.
>
> Como cuando haces
>
>>>> import sys
>>>> dir(sys)
>
> Así puedes conocer todos los campos y métodos de un objeto (todo en
> python es un objeto, no hay primitivas), obtener referencias de un
> método o propiedad por su nombre.
>
>>>> getattr(__builtins__,"sum")([3,4])
> 7
>
> Si se consideran todos los métodos mágicos de los objetos de Python,
> __self__ (él mismo), __class__ (la clase a la que pertenece), __doc__
> (la documentación asociada), __repr__ (su representación como cadena),
> etc. Pues así cualquier objetos puede saber bastante de si mismo, del
> entorno donde se ejecutan y de los objetos presentes (funciones
> globals() o locals())
>
> Este tipo de mecanismos son ejemplos de lo que es la introspección de Python.
> ------------------------------------------------------
>
> Vaya, vaya, nunca imaginé que la inferencia fuera posible asociarla a conjuntos recursivos de operaciones, por lo tanto computables... para mi siempre el acto de inferir estaba asociada a la elaboración de juicios isomorfos al problema de la parada, el cual es no computable. (Según Penrose, Turin y Godel)
>
Es que asi es, es no computable, por eso la inferencia de tipos total
o absoluta (que por lo que estoy aprendiendo aca no es lo mismo que
la introspeccion) es imposible.
Esa (no introspeccion, si inferencia) es el problema isomorfo al de la
parada (tengo mis serias duda que la introspeccion lo sea). Por eso lo
que se hace es hacer una aproximacion (de hecho una gran aproximacion,
acordate que ademas tiene que ser relativamente rapido) para reducir
que expresiones tipan, y cuales no. Obviamente como es una
aproximacion, hay expresiones que tipan que no son reducidas y
expresiones que no tipan que tampoco son reducidas (sino no habria
problema de la parada : -0 ). De ahi la diferencia entre tipado
fuerte, y el resto.
Estoy tratando de entender aun bien la introspeccion, por ahora no
tengo mucho tiempo, peor parece un tema interesante. Alguien tiene
documentacion teorica sobre este metodo?
Saludos,
Angel
Más información sobre la lista de distribución Programacion