PLFA: introducción a la teoría de lenguajes de programación con Agda

Fuentes: PLFA: Introduction to Programming Language Theory using Agda

PLFA (Programming Language Foundations in Agda) es un libro de texto académico que introduce la teoría de los lenguajes de programación utilizando el asistente de pruebas Agda. Su objetivo principal es proporcionar una base formal rigurosa para conceptos fundamentales como los números naturales, la inducción, las relaciones y la lógica, antes de abordar la semántica denotativa y la inferencia de tipos. El libro se estructura en tres partes: las fundaciones lógicas, las bases de los lenguajes de programación y la semántica denotativa. En la primera parte, se exploran conceptos básicos como la igualdad, la isomorfismo y los conectivos lógicos, incluyendo la lógica intuicionista y clásica. La segunda parte se centra en el cálculo lambda, cubriendo representaciones de De Bruijn, la bisimulación y la inferencia de tipos bidireccional. La tercera parte examina la semántica denotativa, la composicionalidad y la adecuación de la semántica denotativa con respecto a la operativa. El proyecto es de código abierto y cuenta con un repositorio en GitHub donde se aceptan contribuciones mediante solicitudes de extracción (pull requests) para mejorar el material, corregir errores o añadir ejercicios. Además, el libro está asociado a cursos universitarios de varios autores, incluyendo a Andrej Bauer, Philip Wadler y Jeremy Siek, lo que lo convierte en una referencia estándar para la enseñanza de la teoría de lenguajes de programación formal.