¿Cuál es el modelo matemático de la clase de Python?

10

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?

alinsoar
fuente
Si conozco el modelo, pensé que podría encontrar un libro detallado (como sicp para lisps), que describiera el proceso de construcción de un sistema desde cero.
alinsoar
44
Relacionado: stackoverflow.com/q/2469824 . Eliminé tu segunda pregunta del cuerpo de tu publicación (Cómo construir un sistema Python desde cero), porque aquí no se puede responder. Si desea saber cómo desarrollar un lenguaje de programación de trabajo real, debe buscar cosas como analizadores, lexers y compiladores.
Robert Harvey
Gracias ! ¡La segunda pregunta era equivalente a la primera! Si conozco el modelo, puedo encontrar un documento que lo describa prácticamente, ¡de modo que muestre cómo construir el núcleo del sistema!
alinsoar
Gran pregunta !!! :)
Maxood

Respuestas:

7

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.

Franco
fuente