Entiendo que el modelo clásico de los documentos lambda no es válido para Python.
Y los cierres no son el modelo matemático de la implementación del sistema Python.
Entonces, ¿qué modelo es?
Entiendo que el modelo clásico de los documentos lambda no es válido para Python.
Y los cierres no son el modelo matemático de la implementación del sistema Python.
Entonces, ¿qué modelo es?
Respuestas:
La principal diferencia entre Python y los modelos de los trabajos clásicos sobre el cálculo lambda es que Python es un lenguaje de paradigmas múltiples. La mayoría de los trabajos que consideran el cálculo lambda consideran un lenguaje funcional puro, sin las complejidades involucradas al agregar otros paradigmas (como OOP o programación lógica).
A partir de la pregunta y sus comentarios, supongo que está interesado en los fundamentos de dichos lenguajes de paradigmas múltiples. En ese caso, puedo sugerir conceptos, técnicas y modelos de programación de computadoras de Peter van Roy y Seif Haridi . El libro trata principalmente del idioma Mozart / Oz, que en sí mismo es un lenguaje bastante académico. Sin embargo, el libro demuestra muy claramente cómo comenzar con un lenguaje central muy pequeño y construir programación orientada a objetos, funcional y lógica (y todo dentro del mismo lenguaje central).
En cuanto al modelo matemático real, la mayoría de los lenguajes de programación solo tienen una especificación informal o semiformal. Rara vez encuentra uno que tenga una teoría adecuada como el cálculo lambda como base. Hay muchos modelos matemáticos diferentes que se han inventado y son más o menos aplicables. Lo interesante es que hay una distinción general en los diferentes enfoques sobre cómo se modela la semántica de programación: la semántica se puede describir denotacionalmente, operacionalmente o algebraicamente. Si desea profundizar aún más, leer un poco sobre las Teorías Unificadoras de Programación es un comienzo, aunque difícil, con una curva de aprendizaje pronunciada.