Una herramienta para chequeo de tipos en Assembly X86

Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2023.

Detalles Bibliográficos
Autor principal: Frias Garay, Alvaro
Otros Autores: Wolovick, Nicolás
Formato: bachelorThesis
Lenguaje:Español
Publicado: 2024
Materias:
Acceso en línea:http://hdl.handle.net/11086/551748
Aporte de:
id I10-R141-11086-551748
record_format dspace
spelling I10-R141-11086-5517482024-05-07T06:35:55Z Una herramienta para chequeo de tipos en Assembly X86 Frias Garay, Alvaro Wolovick, Nicolás Gutson, Daniel Teoría de la computación Semántica y razonamiento Estructura de tipos Interpretación abstracta Sistema de tipos Compiladores Lenguajes Herramientas de software Theory of computation Semantics and reasoning Program constructs Abstract Interpretation Compilers Languages Software testing tools X86 Assembly Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2023. Fil: Frias Garay, Alvaro. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina. Esta tesis aborda el desarrollo de una herramienta diseñada para realizar el chequeo de tipos en programas escritos en el lenguaje de ensamblaje x86. El principal desafío abordado en esta investigación es superar la falta de mecanismos de chequeo de tipos en el lenguaje assembly, lo cual es crítico dada la naturaleza de bajo nivel y la complejidad asociada con la manipulación directa de la memoria y las operaciones de hardware. La herramienta se integra en la cadena de herramientas LLVM, aprovechando su infraestructura para analizar y procesar el código assembly. Se modificó el parser de ensamblador de LLVM para soportar anotaciones de tipos, permitiendo a los desarrolladores agregar especificaciones de tipos a los registros y comprobaciones a las instrucciones de assembly. Esta funcionalidad ayuda a prevenir errores comunes como desbordamientos de memoria y accesos ilegales, los cuales pueden ser difíciles de detectar y depurar en entornos de bajo nivel Los resultados obtenidos demuestran la eficacia de la herramienta en la identificación de errores de tipos en varios casos de prueba. Estos incluyen pruebas con manipulaciones directas de punteros y aritmética de punteros, donde los errores de tipos pueden tener consecuencias críticas. This thesis addresses the development of a tool designed for type checking in programs written in x86 assembly language. The main challenge addressed in this research is to overcome the lack of type-checking mechanisms in assembly language, which is critical given the low-level nature and complexity associated with direct memory manipulation and hardware operations. The tool is integrated into the LLVM toolchain, leveraging its infrastructure to analyze and process assembly code. The LLVM assembler parser was modified to support type annotations, allowing developers to add type specifications to registers and checks to assembly instructions. This functionality helps prevent common errors such as memory overflows and illegal accesses, which can be difficult to detect and debug in low-level environments. The results obtained demonstrate the tool's efficacy in identifying type errors in various test cases. These include tests with direct pointer manipulations and pointer arithmetic, where type errors can have critical consequences. Fil: Frias Garay, Alvaro. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía, Física y Computación; Argentina. 2024-05-06T13:40:06Z 2024-05-06T13:40:06Z 2023-10-15 bachelorThesis http://hdl.handle.net/11086/551748 spa Attribution 4.0 International http://creativecommons.org/licenses/by/4.0/
institution Universidad Nacional de Córdoba
institution_str I-10
repository_str R-141
collection Repositorio Digital Universitario (UNC)
language Español
topic Teoría de la computación
Semántica y razonamiento
Estructura de tipos
Interpretación abstracta
Sistema de tipos
Compiladores
Lenguajes
Herramientas de software
Theory of computation
Semantics and reasoning
Program constructs
Abstract Interpretation
Compilers
Languages
Software testing tools
X86 Assembly
spellingShingle Teoría de la computación
Semántica y razonamiento
Estructura de tipos
Interpretación abstracta
Sistema de tipos
Compiladores
Lenguajes
Herramientas de software
Theory of computation
Semantics and reasoning
Program constructs
Abstract Interpretation
Compilers
Languages
Software testing tools
X86 Assembly
Frias Garay, Alvaro
Una herramienta para chequeo de tipos en Assembly X86
topic_facet Teoría de la computación
Semántica y razonamiento
Estructura de tipos
Interpretación abstracta
Sistema de tipos
Compiladores
Lenguajes
Herramientas de software
Theory of computation
Semantics and reasoning
Program constructs
Abstract Interpretation
Compilers
Languages
Software testing tools
X86 Assembly
description Tesis (Lic. en Ciencias de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía, Física y Computación, 2023.
author2 Wolovick, Nicolás
author_facet Wolovick, Nicolás
Frias Garay, Alvaro
format bachelorThesis
author Frias Garay, Alvaro
author_sort Frias Garay, Alvaro
title Una herramienta para chequeo de tipos en Assembly X86
title_short Una herramienta para chequeo de tipos en Assembly X86
title_full Una herramienta para chequeo de tipos en Assembly X86
title_fullStr Una herramienta para chequeo de tipos en Assembly X86
title_full_unstemmed Una herramienta para chequeo de tipos en Assembly X86
title_sort una herramienta para chequeo de tipos en assembly x86
publishDate 2024
url http://hdl.handle.net/11086/551748
work_keys_str_mv AT friasgarayalvaro unaherramientaparachequeodetiposenassemblyx86
_version_ 1806949221794840576