Superoptimization of stack-based bytecode

Program optimization represents an important discipline within programming languages, particularly in compiler design. These techniques aim to enhance a program's performance and efficiency across various aspects such as the program's execution time, memory utilization or code size. Despit...

Descripción completa

Detalles Bibliográficos
Autor: Hernández Cerezo, Alejandro
Tipo de recurso: tesis doctoral
Fecha de publicación:2025
País:España
Institución:Universidad Complutense de Madrid (UCM)
Repositorio:Docta Complutense
Idioma:inglés
OAI Identifier:oai:docta.ucm.es:20.500.14352/117678
Acceso en línea:https://hdl.handle.net/20.500.14352/117678
Access Level:acceso abierto
Palabra clave:004.43(043.2)
Lenguajes de programación
Informática (Informática)
1203.17 Informática
Descripción
Sumario:Program optimization represents an important discipline within programming languages, particularly in compiler design. These techniques aim to enhance a program's performance and efficiency across various aspects such as the program's execution time, memory utilization or code size. Despite their ability to generate highly efficient code, it is unusual that the produced code is truly optimal.Superoptimization is a compilation technique that addresses these inefficiencies by exploring all sequences that are equivalent to an initial sequence, searching for the one with the minimum cost. This approach enables optimizations that are often impossible to achieve using traditional optimization techniques. Howeves, exploring the entire solution space is extremely costly, making it very hard to adopt in prractice. nevertheless, superoptimization techniques can be used to identify potential inefficiencies in optimizers and develop new optimization techniques. Stack-based languages are ideal for studying these techniques, given their (generally) simple instruction set, and given that an optimal management of the stack is difficult...