Rozumiem, że klasyczny model z gazet lambda nie dotyczy Pythona.
Zamknięcia nie są matematycznym modelem implementacji systemu Python.
Który to model?
Rozumiem, że klasyczny model z gazet lambda nie dotyczy Pythona.
Zamknięcia nie są matematycznym modelem implementacji systemu Python.
Który to model?
Odpowiedzi:
Główną różnicą między Pythonem a modelami z klasycznych prac na rachunku lambda jest to, że Python jest językiem wieloparadygmatycznym. Większość artykułów, które biorą pod uwagę rachunek lambda, bierze pod uwagę czysty język funkcjonalny, bez komplikacji związanych z dodawaniem innych paradygmatów (takich jak OOP lub programowanie logiczne).
Z pytania i twoich komentarzy wynika, że interesują cię podstawy takich języków o wielu paradygmatach. W takim przypadku mogę bardzo zasugerować koncepcje, techniki i modele programowania komputerowego autorstwa Petera van Roya i Seifa Haridiego . Książka dotyczy głównie języka Mozart / Oz, który sam w sobie jest językiem raczej akademickim. Jednak książka bardzo wyraźnie pokazuje, jak zacząć od bardzo małego języka podstawowego i zbudować na nim programowanie obiektowe, funkcjonalne i logiczne (i wszystko w tym samym języku podstawowym).
Jeśli chodzi o rzeczywisty model matematyczny, większość języków programowania ma jedynie nieformalną lub półformalną specyfikację. Rzadko znajdujesz taką, która ma właściwą teorię, taką jak rachunek lambda jako podstawa. Istnieje wiele różnych modeli matematycznych, które zostały wynalezione i mają mniej lub więcej zastosowanie. Co ciekawe, istnieje ogólne rozróżnienie na różne podejścia do modelowania semantyki programowania: semantykę można opisać denotacyjnie, operacyjnie lub algebraicznie. Jeśli chcesz zejść jeszcze głębiej, przeczytaj trochę o Jednolitych Teoriach Programowania , ale jest to trudny temat ze stromą krzywą uczenia się.