Teoría del lenguaje de programación y álgebra abstracta

11

¿Hay alguna aplicación de álgebra abstracta para la teoría del lenguaje de programación? ¿Hay algo que sería útil en el diseño del lenguaje y la implementación del compilador?

n00b101
fuente
3
¿Has revisado la pregunta vinculada anteriormente? ¿ También es útil la teoría de categorías para aprender programación funcional? y programación funcional . ¿Responden tu pregunta?
Kaveh

Respuestas:

11

El álgebra en el sentido clásico de la palabra se usa en el modelado de efectos computacionales como operaciones algebraicas, vea por ejemplo estas diapositivas de Gordon Plotkin, o puede leer documentos reales y Ph.D. tesis , si realmente quisiste hacer la pregunta.

Y para tocar mi propio claxon, eche un vistazo a Eff y lea sobre él , un lenguaje diseñado en torno a la idea de que los efectos computacionales son operaciones algebraicas y que los manejadores son homomorfismos de álgebras.

Andrej Bauer
fuente
1
Eff es genial, lo que entiendo sobre las continuaciones delimitadas proviene principalmente de eso.
Neel Krishnaswami
Estoy considerando una reacción del blog al "callcc considerado dañino" de Oleg en el que sostengo que eff es la forma estructurada de trabajar con las continuaciones.
Andrej Bauer
Gracias a todos por responder. Tuve que aceptar la respuesta de @ AndrejBauer ya que implementó su propio idioma como respuesta a la pregunta :)
n00b101
Tienes el orden de las cosas mal :) Da la casualidad de que Matija y yo implementamos un lenguaje que se ajusta a tu pregunta.
Andrej Bauer
7

Dudé en responder porque cualquier respuesta más allá de un simple "sí" podría llenar y llena los volúmenes. La semántica del lenguaje de programación ha sido profundamente moldeada por el desarrollo de la lógica categórica, que es la aplicación del álgebra a la lógica.

Pero sospecho que la mejor manera de responder a esta pregunta es diciéndole que vaya a aprender Agda : la experiencia de aprender a programar con tipos dependientes es, en gran medida, comprender cómo el álgebra abarca la programación informática.

Neel Krishnaswami
fuente
-1

Actualmente existe un software para álgebra abstracta teórica. Este software permite calcular algunos tipos de cosas como grupos de acciones, homomorfismo, etc. Es Magma: http://magma.maths.usyd.edu.au/magma/

Espero que esto pueda ayudarte.

Camilo Soler
fuente
2
Me temo que probablemente haya entendido mal la pregunta.
Tsuyoshi Ito
¿Crees? Bueno, con Magma tienes una biblioteca sobre un tema en particular sobre álgebra abstracta, un entorno útil para aplicar en otros campos, por ejemplo, lenguaje de programación ...
Camilo Soler
1
(1) Si Magma tiene una biblioteca en un tema particular sobre álgebra abstracta que es útil para aplicar a la teoría del lenguaje de programación, entonces debe escribir sobre esa aplicación. No creo que un puntero a Magma sea útil en el contexto de esta pregunta. (2) Para ser honesto, dudo que entiendas lo que significa "teoría del lenguaje de programación".
Tsuyoshi Ito
OK, solo quería expresar mi idea en otra plataforma que tenga una biblioteca de álgebra abstracta como base (como ejemplo) para crear o diseñar otro "lenguaje de programación" ... no es fácil discutirlo aquí. Lo siento si mi idea fue mala o incorrecta.
Camilo Soler