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?
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?
Antworten:
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.