Qual è il modello matematico di una classe di Python?


10

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 è?


Se conosco il modello, ho pensato di poter trovare un libro dettagliato (come sicp per lisps), che descrivesse il processo di costruzione di un sistema da zero.
alinsoar,

4
Correlato: stackoverflow.com/q/2469824 . Ho rimosso la tua seconda domanda dal corpo del tuo post (Come costruire un sistema Python da zero), perché qui è senza risposta. Se vuoi sapere come sviluppare un vero linguaggio di programmazione funzionante, dovresti esaminare cose come parser, lexer e compilatori.
Robert Harvey,

Grazie ! La seconda domanda era equivalente alla prima! Se conosco il modello, posso trovare un documento che lo descrive praticamente, in modo che mostri come compilare il kernel del sistema!
alinsoar,

Ottima domanda !!! :)
Maxood

Risposte:


7

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.