Qual é o modelo matemático da classe de um Python?

10

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?

alinsoar
fonte
Se eu conhecer o modelo, pensei em encontrar um livro detalhado (como o sicp for lisps), que descrevesse o processo de construção de um sistema a partir do zero.
Alinsoar 07/12/12
4
Relacionado: stackoverflow.com/q/2469824 . Eu removi sua segunda pergunta do corpo da sua postagem (como criar um sistema Python do zero), porque é irrespondível aqui. Se você quiser saber como desenvolver uma linguagem de programação de trabalho real, analise coisas como analisadores, lexers e compiladores.
9788 Robert Harvey
Obrigado ! A segunda pergunta foi equivalente à primeira! Se eu conheço o modelo, posso encontrar um documento que o descreva praticamente, de modo que mostre como construir o kernel do sistema!
Alinsoar
Ótima pergunta !!! :)
Maxood

Respostas:

7

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.

Frank
fonte