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
- Institución
- Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
- OAI Identificador
- seminario:seminario_nCOM000614_Furman
Ver los metadatos del registro completo
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 |