Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go

Autores
Furman, Damián Ariel
Año de publicación
2019
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión publicada
Colaborador/a o director/a de tesis
Melgratti, Hernán Claudio
Descripción
Go es un lenguaje de programación que incorpora la comunicación a través del intercambio de mensajes dentro de su set básico de instrucciones. Lange, Ng, Toninho y Yoshida proponen un sistema de tipos sesión para analizar propiedades sobre aspectos de comunicación en programas Go, como por ejemplo ausencia de deadlocks parciales y errores de comunicación. Esta técnica ha sido implementada en dos herramientas, Dingo-Hunter y Gong, que toman un programa Go e indican si cumple o no con estas propiedades. Sin embargo, su implementación no aporta más información que pueda servir al usuario para mejorar su código si existe algún problema. El objetivo del siguiente trabajo es mejorar la usabilidad de la herramienta incorporando feedback que pueda ser usado para resolver el problema encontrado. Para esto, se desarrolla una modificación de la implementación del tipo sesión que genera trazas de las posibles ejecuciones de los programas a analizar. Luego, cuando un programa no satisface alguna de las propiedades mencionadas, se indica qué instrucción genera el problema, en que número de línea y cuál es la traza de la ejecución que la generó, indicando invocaciones a funciones y sincronizaciones (envío y recepción correctos de un mensaje) previas.
Go is a programming language that incorporates communication through message passing as part of its basic set of instructions. Lange, Ng, Toninho and Yoshida propose a session type’s system for analyzing properties over Go programs like absence of partial dreadlocks or communication errors. However, their implementation doesn’t provide more information that could be used by the user of the tool to improve her code if there is any problem. The objective of the following work is to improve the usability of the tool incorporating feedback that may be used to solve problems found. With this purpose, a modification of the session types implementation is developed to generate traces of all possible executions of programs being analyzed. Then, when a program doesn’t satisfy any of the properties mentioned above, the instruction that generates the problem is given, along with its line number and the trace of the execution that generated it, indicating previous function invocations and synchronization operations (sending and receiving messages).
Fil: Furman, Damián Ariel. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
Materia
GO
COMUNICACION POR INTERCAMBIO DE MENSAJES
TIPO SESION
LIVENESS
SAFETY
DEADLOCK
TRAZA
HISTORIA DE EJECUCION
GO
COMUNICATION THROUGH MESSAGE PASSING
SESSION TYPES
LIVENESS
SAFETY
DEADLOCK
TRACE
Nivel de accesibilidad
acceso abierto
Condiciones de uso
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
Repositorio
Biblioteca Digital (UBA-FCEN)
Institución
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
OAI Identificador
seminario:seminario_nCOM000614_Furman

id BDUBAFCEN_bc81fd420c002946253b57eb9ba11d0e
oai_identifier_str seminario:seminario_nCOM000614_Furman
network_acronym_str BDUBAFCEN
repository_id_str 1896
network_name_str Biblioteca Digital (UBA-FCEN)
spelling Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en GoMeaningful error messages in static deadlock detection tool for go programsFurman, Damián ArielGOCOMUNICACION POR INTERCAMBIO DE MENSAJESTIPO SESIONLIVENESSSAFETYDEADLOCKTRAZAHISTORIA DE EJECUCIONGOCOMUNICATION THROUGH MESSAGE PASSINGSESSION TYPESLIVENESSSAFETYDEADLOCKTRACEGo es un lenguaje de programación que incorpora la comunicación a través del intercambio de mensajes dentro de su set básico de instrucciones. Lange, Ng, Toninho y Yoshida proponen un sistema de tipos sesión para analizar propiedades sobre aspectos de comunicación en programas Go, como por ejemplo ausencia de deadlocks parciales y errores de comunicación. Esta técnica ha sido implementada en dos herramientas, Dingo-Hunter y Gong, que toman un programa Go e indican si cumple o no con estas propiedades. Sin embargo, su implementación no aporta más información que pueda servir al usuario para mejorar su código si existe algún problema. El objetivo del siguiente trabajo es mejorar la usabilidad de la herramienta incorporando feedback que pueda ser usado para resolver el problema encontrado. Para esto, se desarrolla una modificación de la implementación del tipo sesión que genera trazas de las posibles ejecuciones de los programas a analizar. Luego, cuando un programa no satisface alguna de las propiedades mencionadas, se indica qué instrucción genera el problema, en que número de línea y cuál es la traza de la ejecución que la generó, indicando invocaciones a funciones y sincronizaciones (envío y recepción correctos de un mensaje) previas.Go is a programming language that incorporates communication through message passing as part of its basic set of instructions. Lange, Ng, Toninho and Yoshida propose a session type’s system for analyzing properties over Go programs like absence of partial dreadlocks or communication errors. However, their implementation doesn’t provide more information that could be used by the user of the tool to improve her code if there is any problem. The objective of the following work is to improve the usability of the tool incorporating feedback that may be used to solve problems found. With this purpose, a modification of the session types implementation is developed to generate traces of all possible executions of programs being analyzed. Then, when a program doesn’t satisfy any of the properties mentioned above, the instruction that generates the problem is given, along with its line number and the trace of the execution that generated it, indicating previous function invocations and synchronization operations (sending and receiving messages).Fil: Furman, Damián Ariel. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesMelgratti, Hernán Claudio2019info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttps://hdl.handle.net/20.500.12110/seminario_nCOM000614_Furmanspainfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2025-09-29T13:43:38Zseminario:seminario_nCOM000614_FurmanInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962025-09-29 13:43:39.619Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse
dc.title.none.fl_str_mv Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go
Meaningful error messages in static deadlock detection tool for go programs
title Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go
spellingShingle Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go
Furman, Damián Ariel
GO
COMUNICACION POR INTERCAMBIO DE MENSAJES
TIPO SESION
LIVENESS
SAFETY
DEADLOCK
TRAZA
HISTORIA DE EJECUCION
GO
COMUNICATION THROUGH MESSAGE PASSING
SESSION TYPES
LIVENESS
SAFETY
DEADLOCK
TRACE
title_short Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go
title_full Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go
title_fullStr Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go
title_full_unstemmed Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go
title_sort Generación de mensajes de error significativos en herramienta de detección estática de deadlocks para programas en Go
dc.creator.none.fl_str_mv Furman, Damián Ariel
author Furman, Damián Ariel
author_facet Furman, Damián Ariel
author_role author
dc.contributor.none.fl_str_mv Melgratti, Hernán Claudio
dc.subject.none.fl_str_mv GO
COMUNICACION POR INTERCAMBIO DE MENSAJES
TIPO SESION
LIVENESS
SAFETY
DEADLOCK
TRAZA
HISTORIA DE EJECUCION
GO
COMUNICATION THROUGH MESSAGE PASSING
SESSION TYPES
LIVENESS
SAFETY
DEADLOCK
TRACE
topic GO
COMUNICACION POR INTERCAMBIO DE MENSAJES
TIPO SESION
LIVENESS
SAFETY
DEADLOCK
TRAZA
HISTORIA DE EJECUCION
GO
COMUNICATION THROUGH MESSAGE PASSING
SESSION TYPES
LIVENESS
SAFETY
DEADLOCK
TRACE
dc.description.none.fl_txt_mv Go es un lenguaje de programación que incorpora la comunicación a través del intercambio de mensajes dentro de su set básico de instrucciones. Lange, Ng, Toninho y Yoshida proponen un sistema de tipos sesión para analizar propiedades sobre aspectos de comunicación en programas Go, como por ejemplo ausencia de deadlocks parciales y errores de comunicación. Esta técnica ha sido implementada en dos herramientas, Dingo-Hunter y Gong, que toman un programa Go e indican si cumple o no con estas propiedades. Sin embargo, su implementación no aporta más información que pueda servir al usuario para mejorar su código si existe algún problema. El objetivo del siguiente trabajo es mejorar la usabilidad de la herramienta incorporando feedback que pueda ser usado para resolver el problema encontrado. Para esto, se desarrolla una modificación de la implementación del tipo sesión que genera trazas de las posibles ejecuciones de los programas a analizar. Luego, cuando un programa no satisface alguna de las propiedades mencionadas, se indica qué instrucción genera el problema, en que número de línea y cuál es la traza de la ejecución que la generó, indicando invocaciones a funciones y sincronizaciones (envío y recepción correctos de un mensaje) previas.
Go is a programming language that incorporates communication through message passing as part of its basic set of instructions. Lange, Ng, Toninho and Yoshida propose a session type’s system for analyzing properties over Go programs like absence of partial dreadlocks or communication errors. However, their implementation doesn’t provide more information that could be used by the user of the tool to improve her code if there is any problem. The objective of the following work is to improve the usability of the tool incorporating feedback that may be used to solve problems found. With this purpose, a modification of the session types implementation is developed to generate traces of all possible executions of programs being analyzed. Then, when a program doesn’t satisfy any of the properties mentioned above, the instruction that generates the problem is given, along with its line number and the trace of the execution that generated it, indicating previous function invocations and synchronization operations (sending and receiving messages).
Fil: Furman, Damián Ariel. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
description Go es un lenguaje de programación que incorpora la comunicación a través del intercambio de mensajes dentro de su set básico de instrucciones. Lange, Ng, Toninho y Yoshida proponen un sistema de tipos sesión para analizar propiedades sobre aspectos de comunicación en programas Go, como por ejemplo ausencia de deadlocks parciales y errores de comunicación. Esta técnica ha sido implementada en dos herramientas, Dingo-Hunter y Gong, que toman un programa Go e indican si cumple o no con estas propiedades. Sin embargo, su implementación no aporta más información que pueda servir al usuario para mejorar su código si existe algún problema. El objetivo del siguiente trabajo es mejorar la usabilidad de la herramienta incorporando feedback que pueda ser usado para resolver el problema encontrado. Para esto, se desarrolla una modificación de la implementación del tipo sesión que genera trazas de las posibles ejecuciones de los programas a analizar. Luego, cuando un programa no satisface alguna de las propiedades mencionadas, se indica qué instrucción genera el problema, en que número de línea y cuál es la traza de la ejecución que la generó, indicando invocaciones a funciones y sincronizaciones (envío y recepción correctos de un mensaje) previas.
publishDate 2019
dc.date.none.fl_str_mv 2019
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 https://hdl.handle.net/20.500.12110/seminario_nCOM000614_Furman
url https://hdl.handle.net/20.500.12110/seminario_nCOM000614_Furman
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
eu_rights_str_mv openAccess
rights_invalid_str_mv https://creativecommons.org/licenses/by-nc-sa/2.5/ar
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
dc.source.none.fl_str_mv reponame:Biblioteca Digital (UBA-FCEN)
instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron:UBA-FCEN
reponame_str Biblioteca Digital (UBA-FCEN)
collection Biblioteca Digital (UBA-FCEN)
instname_str Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron_str UBA-FCEN
institution UBA-FCEN
repository.name.fl_str_mv Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
repository.mail.fl_str_mv ana@bl.fcen.uba.ar
_version_ 1844618756505993216
score 13.070432