Théorie du langage de programmation et algèbre abstraite

11

Existe-t-il des applications de l'algèbre abstraite à la théorie des langages de programmation? Y a-t-il quelque chose qui serait utile dans la conception du langage et la mise en œuvre du compilateur?

n00b101
la source

Réponses:

11

L'algèbre au sens classique du terme est utilisée dans la modélisation des effets de calcul en tant qu'opérations algébriques, voir par exemple ces diapositives de Gordon Plotkin, ou vous pouvez lire de vrais articles et des doctorats. thèses , si vous vouliez vraiment poser la question.

Et pour me faire sauter, jetez un œil à Eff et lisez-le , un langage conçu autour de l'idée que les effets de calcul sont des opérations algébriques et que les gestionnaires sont des homomorphismes d'algèbres.

Andrej Bauer
la source
1
Eff est très cool - ce que je comprends des suites délimitées en provient principalement.
Neel Krishnaswami
J'envisage une réaction du blog au "callcc considéré comme nuisible" d'Oleg dans lequel je soutiens que l'eff est la manière structurée de travailler avec les suites.
Andrej Bauer
Merci à tous d'avoir répondu. J'ai dû accepter la réponse de @ AndrejBauer car il a implémenté sa propre langue comme réponse à la question :)
n00b101
Vous vous trompez dans l'ordre des choses :) Il se trouve que Matija et moi avons implémenté un langage qui correspond à votre question.
Andrej Bauer
7

J'ai hésité à répondre parce que toute réponse au-delà d'un simple "oui" pourrait et remplit des volumes. La sémantique du langage de programmation a été profondément façonnée par et à son tour a profondément façonné le développement de la logique catégorielle, qui est l'application de l'algèbre à la logique.

Mais je soupçonne que la meilleure façon de répondre à cette question est de vous dire d'aller apprendre Agda - l'expérience d'apprendre à programmer avec des types dépendants est en grande partie en train de comprendre comment l'algèbre imprègne la programmation informatique.

Neel Krishnaswami
la source
-1

Il existe en fait un logiciel d'algèbre abstraite théorique. Ce soft permet de calculer certaines sortes de choses comme les groupes d'actions, l'homomorphisme etc ... C'est Magma: http://magma.maths.usyd.edu.au/magma/

J'espère que cela peut vous aider.

Camilo Soler
la source
2
Je crains que vous n'ayez probablement mal compris la question.
Tsuyoshi Ito du
Tu penses? Eh bien, avec Magma, vous avez une bibliothèque sur un sujet particulier sur l'algèbre abstraite, un environnement utile pour appliquer dans d'autres domaines, par exemple le langage de programmation ...
Camilo Soler
1
(1) Si Magma a une bibliothèque sur un sujet particulier sur l'algèbre abstraite qui est utile pour appliquer la théorie du langage de programmation, alors vous devriez écrire sur cette application. Je ne pense pas qu'un pointeur sur Magma soit utile dans le contexte de cette question. (2) Pour être honnête, je doute que vous compreniez ce que signifie la «théorie du langage de programmation».
Tsuyoshi Ito
OK, je voulais juste exprimer mon idée sur une autre plate-forme qui a une bibliothèque d'algèbre abstraite comme base (comme un exemple) pour créer ou concevoir un autre "langage de programmation" ... n'est pas facile à discuter ici. Je suis désolé si mon idée était mauvaise ou fausse.
Camilo Soler