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.
Autor principal: | |
---|---|
Otros Autores: | |
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 |