Verificación estática de contratos sobre tipos de sesión en Haskell

Autores
Cioppettini, Enzo Samue
Año de publicación
2022
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
El lenguaje de programación Haskell cuenta con diversas implementaciones de tipos de sesiones binarias. En este trabajo estudiamos la viabilidad de integrarlas con LiquidHaskell, una herramienta de verificación estática que extiende el lenguaje con tipos refinados. Si bien la estructura recursiva de las sesiones se puede codificar fácilmente mediante tipos paramétricos, garantizar tanto la dualidad como el uso linear de los canales requiere de extensiones del lenguaje de mayor complejidad. Nosotros partimos de implementaciones existentes, y que utilizan distintas extensiones y mecanismos. A partir de estas, en la medida en la que son compatibles con LiquidHaskell, exploramos la clase de contratos sobre la comunicación que se pueden escribir y verificar. Para esto utilizamos dos técnicas: una simple de integrar, pero que solo permite escribir contratos sobre cada mensaje, es decir, sin tener en cuenta los valores anteriormente intercambiados; y que permite expresar propiedades más ricas, incluyendo dependencias con los mensajes previos, pero cuya integración es más compleja.
Fil: Cioppettini, Enzo Samue. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
Materia
TIPOS DE SESION
TIPOS REFINADOS
HASKELL
SISTEMAS DE EFECTOS
VERIFICACION ESTATICA
CONCURRENCIA
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_nCOM000553_Cioppettini

id BDUBAFCEN_33309f9818348c7d45aba278eaf4b105
oai_identifier_str seminario:seminario_nCOM000553_Cioppettini
network_acronym_str BDUBAFCEN
repository_id_str 1896
network_name_str Biblioteca Digital (UBA-FCEN)
spelling Verificación estática de contratos sobre tipos de sesión en HaskellCioppettini, Enzo SamueTIPOS DE SESIONTIPOS REFINADOSHASKELLSISTEMAS DE EFECTOSVERIFICACION ESTATICACONCURRENCIAEl lenguaje de programación Haskell cuenta con diversas implementaciones de tipos de sesiones binarias. En este trabajo estudiamos la viabilidad de integrarlas con LiquidHaskell, una herramienta de verificación estática que extiende el lenguaje con tipos refinados. Si bien la estructura recursiva de las sesiones se puede codificar fácilmente mediante tipos paramétricos, garantizar tanto la dualidad como el uso linear de los canales requiere de extensiones del lenguaje de mayor complejidad. Nosotros partimos de implementaciones existentes, y que utilizan distintas extensiones y mecanismos. A partir de estas, en la medida en la que son compatibles con LiquidHaskell, exploramos la clase de contratos sobre la comunicación que se pueden escribir y verificar. Para esto utilizamos dos técnicas: una simple de integrar, pero que solo permite escribir contratos sobre cada mensaje, es decir, sin tener en cuenta los valores anteriormente intercambiados; y que permite expresar propiedades más ricas, incluyendo dependencias con los mensajes previos, pero cuya integración es más compleja.Fil: Cioppettini, Enzo Samue. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesMelgratti, Hernán Claudio2022info: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_nCOM000553_Cioppettinispainfo: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-04T09:49:27Zseminario:seminario_nCOM000553_CioppettiniInstitucionalhttps://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-04 09:49:28.207Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse
dc.title.none.fl_str_mv Verificación estática de contratos sobre tipos de sesión en Haskell
title Verificación estática de contratos sobre tipos de sesión en Haskell
spellingShingle Verificación estática de contratos sobre tipos de sesión en Haskell
Cioppettini, Enzo Samue
TIPOS DE SESION
TIPOS REFINADOS
HASKELL
SISTEMAS DE EFECTOS
VERIFICACION ESTATICA
CONCURRENCIA
title_short Verificación estática de contratos sobre tipos de sesión en Haskell
title_full Verificación estática de contratos sobre tipos de sesión en Haskell
title_fullStr Verificación estática de contratos sobre tipos de sesión en Haskell
title_full_unstemmed Verificación estática de contratos sobre tipos de sesión en Haskell
title_sort Verificación estática de contratos sobre tipos de sesión en Haskell
dc.creator.none.fl_str_mv Cioppettini, Enzo Samue
author Cioppettini, Enzo Samue
author_facet Cioppettini, Enzo Samue
author_role author
dc.contributor.none.fl_str_mv Melgratti, Hernán Claudio
dc.subject.none.fl_str_mv TIPOS DE SESION
TIPOS REFINADOS
HASKELL
SISTEMAS DE EFECTOS
VERIFICACION ESTATICA
CONCURRENCIA
topic TIPOS DE SESION
TIPOS REFINADOS
HASKELL
SISTEMAS DE EFECTOS
VERIFICACION ESTATICA
CONCURRENCIA
dc.description.none.fl_txt_mv El lenguaje de programación Haskell cuenta con diversas implementaciones de tipos de sesiones binarias. En este trabajo estudiamos la viabilidad de integrarlas con LiquidHaskell, una herramienta de verificación estática que extiende el lenguaje con tipos refinados. Si bien la estructura recursiva de las sesiones se puede codificar fácilmente mediante tipos paramétricos, garantizar tanto la dualidad como el uso linear de los canales requiere de extensiones del lenguaje de mayor complejidad. Nosotros partimos de implementaciones existentes, y que utilizan distintas extensiones y mecanismos. A partir de estas, en la medida en la que son compatibles con LiquidHaskell, exploramos la clase de contratos sobre la comunicación que se pueden escribir y verificar. Para esto utilizamos dos técnicas: una simple de integrar, pero que solo permite escribir contratos sobre cada mensaje, es decir, sin tener en cuenta los valores anteriormente intercambiados; y que permite expresar propiedades más ricas, incluyendo dependencias con los mensajes previos, pero cuya integración es más compleja.
Fil: Cioppettini, Enzo Samue. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
description El lenguaje de programación Haskell cuenta con diversas implementaciones de tipos de sesiones binarias. En este trabajo estudiamos la viabilidad de integrarlas con LiquidHaskell, una herramienta de verificación estática que extiende el lenguaje con tipos refinados. Si bien la estructura recursiva de las sesiones se puede codificar fácilmente mediante tipos paramétricos, garantizar tanto la dualidad como el uso linear de los canales requiere de extensiones del lenguaje de mayor complejidad. Nosotros partimos de implementaciones existentes, y que utilizan distintas extensiones y mecanismos. A partir de estas, en la medida en la que son compatibles con LiquidHaskell, exploramos la clase de contratos sobre la comunicación que se pueden escribir y verificar. Para esto utilizamos dos técnicas: una simple de integrar, pero que solo permite escribir contratos sobre cada mensaje, es decir, sin tener en cuenta los valores anteriormente intercambiados; y que permite expresar propiedades más ricas, incluyendo dependencias con los mensajes previos, pero cuya integración es más compleja.
publishDate 2022
dc.date.none.fl_str_mv 2022
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_nCOM000553_Cioppettini
url https://hdl.handle.net/20.500.12110/seminario_nCOM000553_Cioppettini
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_ 1842340720840540160
score 12.623145