Capisco che il modello classico delle carte lambda non è valido per Python.
E le chiusure non sono il modello matematico dell'implementazione del sistema Python.
Quindi quale modello è?
Capisco che il modello classico delle carte lambda non è valido per Python.
E le chiusure non sono il modello matematico dell'implementazione del sistema Python.
Quindi quale modello è?
Risposte:
La differenza principale tra Python e i modelli dai documenti classici sul calcolo lambda è che Python è un linguaggio multi-paradigma. La maggior parte degli articoli che considerano il calcolo lambda considera un linguaggio funzionale puro, senza le complessità coinvolte dall'aggiunta di altri paradigmi (come OOP o programmazione logica).
Dalla domanda e dai tuoi commenti, ritengo che tu sia interessato alle basi di tali linguaggi multi-paradigma. In tal caso, posso suggerire fortemente concetti, tecniche e modelli di programmazione informatica di Peter van Roy e Seif Haridi . Il libro parla principalmente della lingua Mozart / Oz, che di per sé è una lingua piuttosto accademica. Tuttavia, il libro dimostra molto chiaramente come iniziare con un linguaggio di base molto piccolo e costruire su di esso una programmazione orientata agli oggetti, funzionale e logica (e tutto all'interno dello stesso linguaggio di base).
Per quanto riguarda l'attuale modello matematico, la maggior parte dei linguaggi di programmazione ha solo una specifica informale o semi-formale. Raramente ne trovi uno che ha una teoria adeguata come il calcolo lambda come base. Ci sono molti diversi modelli matematici che sono stati inventati e sono più o meno applicabili. La cosa interessante è che esiste una distinzione generale nei diversi approcci al modo in cui vengono modellate la semantica di programmazione: la semantica può essere descritta in modo denotazionale, operativo o algebrico. Se vuoi approfondire ancora, leggere un po 'le Teorie Unificanti della Programmazione è un inizio, sebbene difficile con una ripida curva di apprendimento.