Construcción de un compilador para el lenguaje BeGone
Construction of a compiler for the BeGone language
Ver/ Abrir
Identificadores
URI: https://hdl.handle.net/10902/34647Registro completo
Mostrar el registro completo DCAutoría
Castro Cutillas, PedroFecha
2024-09Director/es
Derechos
Attribution-NonCommercial-NoDerivatives 4.0 International
Palabras clave
Compilador
Lexer
Parser
Python3
Algoritmo de compresión
Compiler
Compression algorithm
Resumen/Abstract
En este trabajo de fin de grado se crea un intérprete para el lenguaje Begone, un lenguaje de programación propuesto por David M. Beazley. El objetivo es que esta implementación se utilice en la asignatura «Lenguajes de programación».
El alumno lleva esta implementación en Python, realizando las siguientes tareas:
Define especificaciones de los tokens e implementación mediante expresiones regulares
Define una gramática libre de contexto para el lenguaje Begone, sin ambigüedad
Utiliza librerías para que el compilador genere código nativo
Adicionalmente, este lenguaje tiene funciones nativas para comprimir ficheros, basado en registros de retroalimentación, que es lo más eficiente posible. Estas funciones:
Permiten la compresión y descompresión de ficheros de diferentes formatos (por ejemplo, texto, binario).
Utilizan registros de retroalimentación para optimizar la compresión en función de patrones de uso y tipos de datos más comunes.
Proporcionan una interfaz sencilla para que los usuarios puedan integrar fácilmente estas funciones en sus programas escritos en Begone.
In this final degree project, an interpreter for the Begone language, a programming language proposed by David M. Beazley, is created. The goal is for this implementation to be used in the course ”Programming Languages.”
The student carries out this implementation in Python, performing the following tasks:
Defines specifications of the tokens and implementation using regular expressions
Defines an unambiguous context-free grammar for the Begone language
Uses libraries to generate native code with the compiler
Additionally, this language has native functions for file compression, based on feedback registers, which are as efficient as possible. These functions:
Allow the compression and decompression of files in different formats (e.g., text, binary).
Use feedback registers to optimize compression based on usage patterns and common data types.
Provide a simple interface for users to easily integrate these functions into their programs written in Begone.