Qual è lo stato attuale dei programmi paralleli o concorrenti nell'isomorfismo di Curry-Howard?


9

In Prove e tipi di Girard possiamo leggere:

Da un punto di vista algoritmico, il calcolo sequenziale non ha isomorfismo di Curry-Howard, a causa della moltitudine di modi di scrivere la stessa prova. Questo ci impedisce di usarlo come un calcolo tipizzato, sebbene si intraveda una struttura profonda di questo tipo, probabilmente collegata al parallelismo.λ

Prove e tipi , JY Girard (Pagina 28)

Ma possiamo anche leggere (sulla Linear Logic) che

Dal punto di vista dell'informatica, offre un nuovo approccio a questioni di pigrizia, effetti collaterali e allocazione della memoria [GirLaf, Laf87, Laf88] con promettenti applicazioni al parallelismo.

Prove e tipi , JY Girard (Pagina 149, scritto da Yves Lafont)

In che modo i programmi paralleli sono collegati all'isomorfismo di Curry-Howard? Quali sono i pensieri attuali al riguardo?

Risposte:


7

Il Concurrent Logical Framework è un'area interessante che include i suoi discendenti, come Linear Meld e LolliMon . Questo si basa sulla logica lineare intuitiva.

La logica lineare classica ha connessioni alla macchina chimica astratta lineare (CHAM) come descritto ad esempio da un calcolo per reti di interazione basato sulla macchina chimica astratta lineare che descrive esplicitamente il risultato come un risultato di tipo Curry-Howard.

λμ

Ad ogni modo, questa è ancora una vivace area di ricerca. Ci sono molti articoli recenti su questo argomento. Quanto sopra non menziona nemmeno il lato ancora più sottostrutturale della logica di separazione e la corrispondente teoria del tipo di hoare che si concentra su linguaggi di programmazione imperativi. Ad esempio, c'è Verso la semantica teorica dei tipi per la concorrenza transazionale di cui è possibile tracciare riferimenti per lavori precedenti.

(Come una nota un po 'pedante, la maggior parte di questi si concentra sulla concorrenza , non sul parallelismo in sé.)


Ok. Ho modificato il titolo della mia domanda per renderlo un po 'più ampio. Non sapevo che la concorrenza avesse un collegamento con Curry-Howard. Ma che dire del parallelismo?
Boris,

In una visione di programmazione funzionale di Curry-Howard, qualsiasi parallelismo (puro) si verificherebbe a livello di riscrittura delle prove e di solito ce n'è in abbondanza (ogni volta che ci sono più redex). È possibile aggiungere annotazioni come quella di Haskell parper controllarlo (vale a dire che un ordine di riduzione meno parallelo potrebbe essere utilizzato per impostazione predefinita che potrebbe essere selettivamente reso più parallelo) ma non avrebbero alcun significato logico.
Derek Elkins lasciò SE il

4

Per la concorrenza in generale, esiste una linea di ricerca molto attiva, che ho cercato di riassumere in questa risposta: https://cs.stackexchange.com/a/102711/98901

Aggiungo qui un commento sul parallelismo, di seguito.


Avron [1996] ha introdotto la nozione di ipersequenti , ovvero raccolte di sequenze in giudizi.

GHG|H|PQGHP|QPQG|H

Abbiamo appena iniziato a grattare la superficie dell'interpretazione semantica di questo, ma che questo è parallelismo è abbastanza evidente: la semantica della composizione parallela consente di vedere azioni simultanee da entrambi i processi, e c'è un teorema nel documento che afferma che nessuno dei i due processi devono attendere che l'altro esegua almeno qualche azione (il Teorema di Prontezza). L'estensione a più di due azioni contemporaneamente sembra semplice. (La digitazione lo consente già, ma la semantica in quel documento non ne sfrutta appieno.)

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.