Quel est le modèle mathématique d'une classe Python?


10

Je comprends que le modèle classique des lambda-papers n'est pas valable pour Python.

Et les fermetures ne sont pas le modèle mathématique de l'implémentation du système Python.

Alors, quel modèle est-ce?


Si je connais le modèle, j'ai pensé que je pourrais trouver un livre détaillé (comme sicp pour lisps), qui décrirait le processus de construction d'un système à partir de zéro.
alinsoar

4
En relation: stackoverflow.com/q/2469824 . J'ai supprimé votre deuxième question du corps de votre message (Comment construire un système Python à partir de zéro), car elle est sans réponse ici. Si vous voulez savoir comment développer un véritable langage de programmation de travail, vous devriez examiner des choses comme les analyseurs, les lexers et les compilateurs.
Robert Harvey

Merci ! La deuxième question était équivalente à la première! Si je connais le modèle, je peux trouver un document qui le décrit pratiquement, donc qui montre comment construire le noyau du système!
alinsoar

Grande question !!! :)
Maxood

Réponses:


7

La principale différence entre Python et les modèles des articles classiques sur le calcul lambda est que Python est un langage multi-paradigme. La plupart des articles qui considèrent le lambda calcul considèrent un langage fonctionnel pur, sans les complexités impliquées en ajoutant d'autres paradigmes (comme la POO ou la programmation logique).

D'après la question et vos commentaires, je suppose que vous vous intéressez aux fondements de ces langages multi-paradigmes. Dans ce cas, je peux fortement suggérer des concepts, des techniques et des modèles de programmation informatique par Peter van Roy et Seif Haridi . Le livre traite principalement de la langue Mozart / Oz, qui est en soi une langue plutôt académique. Cependant, le livre montre très clairement comment commencer avec un très petit langage de base et construire une programmation orientée objet, fonctionnelle et logique par-dessus (et tout cela dans le même langage de base).

Quant au modèle mathématique actuel, la plupart des langages de programmation n'ont qu'une spécification informelle ou semi-formelle. Vous en trouvez rarement une qui a une théorie appropriée comme le calcul lambda comme fondement. Il existe de nombreux modèles mathématiques différents qui ont été inventés et qui sont plus ou moins applicables. Ce qui est intéressant, c'est qu'il existe une distinction générale entre les différentes approches de la façon dont la sémantique de programmation est modélisée: la sémantique peut être décrite de manière dénotationnelle, opérationnelle ou algébrique. Si vous voulez aller encore plus loin, lire un peu sur les théories unificatrices de la programmation est un début, bien que difficile avec une courbe d'apprentissage abrupte.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.