Was ist das mathematische Modell einer Python-Klasse?

10

Ich verstehe, dass das klassische Modell aus den Lambda-Papieren für Python nicht gültig ist.

Und die Abschlüsse sind nicht das mathematische Modell der Implementierung des Python-Systems.

Also welches Modell ist es?

Alinsoar
quelle
Wenn ich das Modell kenne, dachte ich, ich könnte ein detailliertes Buch finden (wie sicp for lisps), das den Prozess des Aufbaus eines Systems von Grund auf beschreibt.
Alinsoar
4
Siehe auch : stackoverflow.com/q/2469824 . Ich habe Ihre zweite Frage aus dem Text Ihres Beitrags entfernt (So erstellen Sie ein Python-System von Grund auf neu), da sie hier nicht beantwortet werden kann. Wenn Sie wissen möchten, wie man eine funktionierende Programmiersprache entwickelt, sollten Sie sich mit Parsern, Lexern und Compilern befassen.
Robert Harvey
Vielen Dank ! Die zweite Frage entsprach der ersten! Wenn ich das Modell kenne, kann ich ein Dokument finden, das es praktisch beschreibt, so dass gezeigt wird, wie der Kernel des Systems erstellt wird!
Alinsoar
Tolle Frage !!! :)
Maxood

Antworten:

7

Der Hauptunterschied zwischen Python und Modellen aus klassischen Arbeiten zur Lambda-Rechnung besteht darin, dass Python eine Multi-Paradigmen-Sprache ist. Die meisten Arbeiten, die den Lambda-Kalkül berücksichtigen, betrachten eine reine funktionale Sprache ohne die Komplexität, die durch das Hinzufügen anderer Paradigmen (wie OOP oder logische Programmierung) entsteht.

Aus der Frage und Ihren Kommentaren gehe ich davon aus, dass Sie an den Grundlagen solcher Multi-Paradigmen-Sprachen interessiert sind. In diesem Fall kann ich sehr empfehlen Konzepte, Techniken und Modelle aus Computer - Programmierung von Peter van Roy und Seif Haridi . Das Buch handelt hauptsächlich von der Mozart / Oz-Sprache, die an sich eine eher akademische Sprache ist. Das Buch zeigt jedoch sehr deutlich, wie man mit einer sehr kleinen Kernsprache beginnt und darauf Objektorientierung, Funktions- und Logikprogrammierung aufbaut (und das alles innerhalb derselben Kernsprache).

Was das eigentliche mathematische Modell betrifft, haben die meisten Programmiersprachen nur eine informelle oder semi-formale Spezifikation. Selten findet man eine, die eine richtige Theorie wie den Lambda-Kalkül als Grundlage hat. Es gibt viele verschiedene mathematische Modelle, die erfunden wurden und mehr oder weniger anwendbar sind. Interessant ist, dass es einen allgemeinen Unterschied zwischen den verschiedenen Ansätzen zur Modellierung der Programmiersemantik gibt: Die Semantik kann denotational, operativ oder algebraisch beschrieben werden. Wenn Sie noch tiefer gehen möchten, ist es ein Anfang, ein wenig über die vereinheitlichenden Theorien der Programmierung zu lesen , wenn auch eine schwierige mit einer steilen Lernkurve.

Frank
quelle