Una herramienta para chequeo de tipos en Assembly X86

Autores
Frias Garay, Alvaro
Año de publicación
2023
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión publicada
Colaborador/a o director/a de tesis
Wolovick, Nicolás
Gutson, Daniel
Descripción
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.
Materia
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
Nivel de accesibilidad
acceso abierto
Condiciones de uso
Repositorio
Repositorio Digital Universitario (UNC)
Institución
Universidad Nacional de Córdoba
OAI Identificador
oai:rdu.unc.edu.ar:11086/551748

id RDUUNC_5a53cf6096cbf12737768fab9c0ccbad
oai_identifier_str oai:rdu.unc.edu.ar:11086/551748
network_acronym_str RDUUNC
repository_id_str 2572
network_name_str Repositorio Digital Universitario (UNC)
spelling Una herramienta para chequeo de tipos en Assembly X86Frias Garay, AlvaroTeoría de la computaciónSemántica y razonamientoEstructura de tiposInterpretación abstractaSistema de tiposCompiladoresLenguajesHerramientas de softwareTheory of computationSemantics and reasoningProgram constructsAbstract InterpretationCompilersLanguagesSoftware testing toolsX86 AssemblyTesis (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.Wolovick, NicolásGutson, Daniel2023-10-15info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttp://hdl.handle.net/11086/551748spainfo:eu-repo/semantics/openAccessreponame:Repositorio Digital Universitario (UNC)instname:Universidad Nacional de Córdobainstacron:UNC2025-10-23T11:17:21Zoai:rdu.unc.edu.ar:11086/551748Institucionalhttps://rdu.unc.edu.ar/Universidad públicaNo correspondehttp://rdu.unc.edu.ar/oai/snrdoca.unc@gmail.comArgentinaNo correspondeNo correspondeNo correspondeopendoar:25722025-10-23 11:17:21.397Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdobafalse
dc.title.none.fl_str_mv Una herramienta para chequeo de tipos en Assembly X86
title Una herramienta para chequeo de tipos en Assembly X86
spellingShingle Una herramienta para chequeo de tipos en Assembly X86
Frias Garay, Alvaro
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
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
dc.creator.none.fl_str_mv Frias Garay, Alvaro
author Frias Garay, Alvaro
author_facet Frias Garay, Alvaro
author_role author
dc.contributor.none.fl_str_mv Wolovick, Nicolás
Gutson, Daniel
dc.subject.none.fl_str_mv 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
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
dc.description.none.fl_txt_mv 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.
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.
publishDate 2023
dc.date.none.fl_str_mv 2023-10-15
dc.type.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_7a1f
info:ar-repo/semantics/tesisDeGrado
format bachelorThesis
status_str publishedVersion
dc.identifier.none.fl_str_mv http://hdl.handle.net/11086/551748
url http://hdl.handle.net/11086/551748
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositorio Digital Universitario (UNC)
instname:Universidad Nacional de Córdoba
instacron:UNC
reponame_str Repositorio Digital Universitario (UNC)
collection Repositorio Digital Universitario (UNC)
instname_str Universidad Nacional de Córdoba
instacron_str UNC
institution UNC
repository.name.fl_str_mv Repositorio Digital Universitario (UNC) - Universidad Nacional de Córdoba
repository.mail.fl_str_mv oca.unc@gmail.com
_version_ 1846785278660837376
score 12.982451