Cargando...
Fecha
2025-10-06
Editor/a
Director/a
Tutor/a
Coordinador/a
Prologuista
Revisor/a
Ilustrador/a
Derechos de acceso
info:eu-repo/semantics/openAccess
Título de la revista
ISSN de la revista
Título del volumen
Editorial
Resumen
Este trabajo presenta el diseño e implementación de un compilador para un lenguaje de programación funcional inspirado en Haskell. El proyecto abarca todas las fases del proceso de compilación: análisis léxico, sintáctico y semántico, inferencia de tipos, traducción a cálculo lambda y aplicación de técnicas como lambda lifting y reducción de grafos. El compilador desarrollado implementa evaluación perezosa, característica distintiva de los lenguajes funcionales modernos, y genera código ejecutable para una máquina diseñada ad hoc en lenguaje C. De esta forma, se muestra cómo un paradigma basado en funciones y expresiones matemáticas puede trasladarse a un entorno imperativo convencional. La memoria incluye una descripción teórica de los fundamentos de la programación funcional y de los compiladores, así como la documentación detallada de cada fase de la implementación. Además, se acompaña de una batería de pruebas que valida la corrección del sistema. El resultado es un prototipo operativo que combina teoría y práctica, y que puede servir de apoyo para la comprensión de los lenguajes funcionales y de su procesamiento.
This project presents the design and implementation of a compiler for a functional programming language inspired by Haskell. The work covers all compilation stages: lexical, syntactic and semantic analysis, type inference, translation into lambda calculus, and the application of techniques such as lambda lifting and graph reduction. The compiler supports lazy evaluation, a defining feature of modern functional languages, and produces executable code for a custom machine implemented in C. In this way, it illustrates how a paradigm based on mathematical functions and expressions can be mapped into a conventional imperative environment. The thesis combines a theoretical overview of functional programming and compiler design with the detailed documentation of each implementation stage. A test suite has been included to validate the system’s correctness. The result is a working prototype that bridges theoretical concepts and practical execution, and that can be used as a learning tool for understanding functional languages and their processing.
This project presents the design and implementation of a compiler for a functional programming language inspired by Haskell. The work covers all compilation stages: lexical, syntactic and semantic analysis, type inference, translation into lambda calculus, and the application of techniques such as lambda lifting and graph reduction. The compiler supports lazy evaluation, a defining feature of modern functional languages, and produces executable code for a custom machine implemented in C. In this way, it illustrates how a paradigm based on mathematical functions and expressions can be mapped into a conventional imperative environment. The thesis combines a theoretical overview of functional programming and compiler design with the detailed documentation of each implementation stage. A test suite has been included to validate the system’s correctness. The result is a working prototype that bridges theoretical concepts and practical execution, and that can be used as a learning tool for understanding functional languages and their processing.
Descripción
Categorías UNESCO
Palabras clave
Compiladores, Programación funcional, Evaluación perezosa, Cálculo lambda, Reducción de grafos, Haskell, Compilers, Functional programming, Lazy evaluation, Lambda calculus, Graph reduction, Haskell
Citación
Decimavilla Domínguez-Gil, Pablo. Compilador de un Lenguaje Funcional. Universidad de Educación a Distancia (UNED). 2025
Centro
E.T.S. de Ingeniería Informática
Departamento
Lenguajes y Sistemas Informáticos



