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?
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?
Risposte:
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.
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.
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.