Teoria del linguaggio di programmazione e algebra astratta


11

Esistono applicazioni di Algebra astratta alla teoria dei linguaggi di programmazione? C'è qualcosa che sarebbe utile nella progettazione del linguaggio e nell'implementazione del compilatore?



3
Hai verificato la domanda collegata sopra? Anche la teoria delle categorie è utile per l'apprendimento della programmazione funzionale? e programmazione funzionale . Rispondono alla tua domanda?
Kaveh,

Risposte:


11

L'algebra nel senso classico della parola è usata nella modellazione degli effetti computazionali come operazioni algebriche, vedi ad esempio queste diapositive di Gordon Plotkin, oppure puoi leggere documenti reali e dottorati di ricerca. tesi , se in realtà intendevi porre la domanda.

E per suonare il mio stesso corno, dare un'occhiata a Eff e leggerlo , un linguaggio progettato attorno all'idea che gli effetti computazionali sono operazioni algebriche e che i gestori sono omomorfismi di algebre.


1
L'effetto è molto interessante - ciò che capisco delle continuazioni delimitate deriva principalmente da esso.
Neel Krishnaswami,

Sto prendendo in considerazione una reazione del blog alla "callcc considerata dannosa" di Oleg in cui sostengo che eff sia il modo strutturato di lavorare con le continuazioni.
Andrej Bauer,

Grazie a tutti per aver risposto. Ho dovuto accettare la risposta di @ AndrejBauer poiché ha implementato la propria lingua come risposta alla domanda :)
n00b101

Hai sbagliato l'ordine delle cose lì :) È solo che Matija e io abbiamo implementato un linguaggio adatto alla tua domanda.
Andrej Bauer,

7

Ho esitato a rispondere perché qualsiasi risposta oltre un semplice "sì" potrebbe e riempie i volumi. La semantica del linguaggio di programmazione è stata profondamente modellata e, a sua volta, ha profondamente modellato lo sviluppo della logica categorica, che è l'applicazione dell'algebra alla logica.

Ma ho il sospetto che il modo migliore per rispondere a questa domanda sia di dirti di andare ad imparare Agda - l'esperienza di imparare a programmare con tipi dipendenti sta in gran parte a che fare con il modo in cui l'intera algebra pervade la programmazione informatica.


-1

In realtà esiste un software per l'algebra astratta teorica. Questo software consente di calcolare alcuni tipi di cose come gruppi di azioni, omomorfismo ecc ... È Magma: http://magma.maths.usyd.edu.au/magma/

Spero che questo possa aiutarti.


2
Temo che tu abbia probabilmente frainteso la domanda.
Tsuyoshi Ito,

Tu pensi? Bene, con Magma hai una biblioteca in particolare sull'algebra astratta, un ambiente utile da applicare in altri campi, ad esempio il linguaggio di programmazione ...
Camilo Soler,

1
(1) Se Magma ha una libreria in particolare argomento sull'algebra astratta che è utile applicare alla teoria del linguaggio di programmazione, allora dovresti scrivere su tale applicazione. Non penso che un puntatore al Magma sia utile nel contesto di questa domanda. (2) Ad essere sincero, dubito che tu capisca cosa significa "teoria del linguaggio di programmazione".
Tsuyoshi Ito,

OK, volevo solo esprimere la mia idea su un'altra piattaforma che ha una libreria di algebra astratta come base (come esempio) per creare o progettare un altro "linguaggio di programmazione" ... non è facile discutere qui. Mi dispiace se la mia idea era cattiva o sbagliata.
Camilo Soler,
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.