Verificación estática de contratos sobre tipos de sesión en Haskell
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...
Guardado en:
| Autor principal: | |
|---|---|
| Otros Autores: | |
| Formato: | Tesis de grado publishedVersion |
| Lenguaje: | Español |
| Publicado: |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
2022
|
| Materias: | |
| Acceso en línea: | https://hdl.handle.net/20.500.12110/seminario_nCOM000553_Cioppettini https://repositoriouba.sisbi.uba.ar/gsdl/cgi-bin/library.cgi?a=d&c=aextesisg&d=seminario_nCOM000553_Cioppettini_oai |
| Aporte de: |
| id |
I28-R145-seminario_nCOM000553_Cioppettini_oai |
|---|---|
| record_format |
dspace |
| spelling |
I28-R145-seminario_nCOM000553_Cioppettini_oai2025-08-20 Melgratti, Hernán Claudio Cioppettini, Enzo Samue 2022 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. application/pdf https://hdl.handle.net/20.500.12110/seminario_nCOM000553_Cioppettini spa Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar TIPOS DE SESION TIPOS REFINADOS HASKELL SISTEMAS DE EFECTOS VERIFICACION ESTATICA CONCURRENCIA Verificación estática de contratos sobre tipos de sesión en Haskell info:eu-repo/semantics/bachelorThesis info:ar-repo/semantics/tesis de grado info:eu-repo/semantics/publishedVersion https://repositoriouba.sisbi.uba.ar/gsdl/cgi-bin/library.cgi?a=d&c=aextesisg&d=seminario_nCOM000553_Cioppettini_oai |
| institution |
Universidad de Buenos Aires |
| institution_str |
I-28 |
| repository_str |
R-145 |
| collection |
Repositorio Digital de la Universidad de Buenos Aires (UBA) |
| language |
Español |
| orig_language_str_mv |
spa |
| topic |
TIPOS DE SESION TIPOS REFINADOS HASKELL SISTEMAS DE EFECTOS VERIFICACION ESTATICA CONCURRENCIA |
| spellingShingle |
TIPOS DE SESION TIPOS REFINADOS HASKELL SISTEMAS DE EFECTOS VERIFICACION ESTATICA CONCURRENCIA Cioppettini, Enzo Samue Verificación estática de contratos sobre tipos de sesión en Haskell |
| topic_facet |
TIPOS DE SESION TIPOS REFINADOS HASKELL SISTEMAS DE EFECTOS VERIFICACION ESTATICA CONCURRENCIA |
| 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. |
| author2 |
Melgratti, Hernán Claudio |
| author_facet |
Melgratti, Hernán Claudio Cioppettini, Enzo Samue |
| format |
Tesis de grado Tesis de grado publishedVersion |
| author |
Cioppettini, Enzo Samue |
| author_sort |
Cioppettini, Enzo Samue |
| title |
Verificación estática de contratos sobre tipos de sesión en Haskell |
| 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 |
| publisher |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
| publishDate |
2022 |
| url |
https://hdl.handle.net/20.500.12110/seminario_nCOM000553_Cioppettini https://repositoriouba.sisbi.uba.ar/gsdl/cgi-bin/library.cgi?a=d&c=aextesisg&d=seminario_nCOM000553_Cioppettini_oai |
| work_keys_str_mv |
AT cioppettinienzosamue verificacionestaticadecontratossobretiposdesesionenhaskell |
| _version_ |
1843126914894528512 |