Entendo que o modelo clássico dos lambda-papers não é válido para Python.
E os fechamentos não são o modelo matemático da implementação do sistema Python.
Então, qual modelo é esse?
Entendo que o modelo clássico dos lambda-papers não é válido para Python.
E os fechamentos não são o modelo matemático da implementação do sistema Python.
Então, qual modelo é esse?
Respostas:
A principal diferença entre Python e modelos de artigos clássicos sobre o cálculo lambda é que o Python é uma linguagem de múltiplos paradigmas. A maioria dos trabalhos que consideram o cálculo lambda considera uma linguagem funcional pura, sem as complexidades envolvidas pela adição de outros paradigmas (como OOP ou programação lógica).
A partir da pergunta e dos seus comentários, entendo que você esteja interessado nos fundamentos de tais linguagens multiparadigmas. Nesse caso, posso sugerir conceitos, técnicas e modelos de programação de computadores de Peter van Roy e Seif Haridi . O livro é principalmente sobre a língua Mozart / Oz, que por si só é uma linguagem bastante acadêmica. No entanto, o livro demonstra muito claramente como começar com uma linguagem básica muito pequena e criar programação orientada a objetos, funcional e lógica sobre ela (e tudo dentro da mesma linguagem básica).
Quanto ao modelo matemático real, a maioria das linguagens de programação possui apenas uma especificação informal ou semi-formal. Raramente você encontra uma que tenha uma teoria adequada como o cálculo lambda como base. Existem muitos modelos matemáticos diferentes que foram inventados e são mais ou menos aplicáveis. O interessante é que há uma distinção geral nas diferentes abordagens de como a semântica de programação é modelada: a semântica pode ser descrita denotacionalmente, operacionalmente ou algebricamente. Se você quiser ir ainda mais fundo, ler um pouco sobre as Teorias Unificadoras de Programação é um começo, embora difícil, com uma curva de aprendizado acentuada.