Chequeo de tipos eficiente para Path Polymorphism
- Autores
- Edi, Juan Ignacio
- Año de publicación
- 2015
- Idioma
- español castellano
- Tipo de recurso
- tesis de grado
- Estado
- versión publicada
- Colaborador/a o director/a de tesis
- Bonelli, Eduardo Augusto
Viso, Andrés Ezequiel - Descripción
- Recientemente fue propuesto un sistema de tipos que combina tipos aplicativos, constantes, unión y recursivos, para capturar estáticamente la noción de Path Polymorphism. Esto se refiere a la capacidad de operar uniformemente sobre estructuras de datos aplicativas definidas de forma recursiva, utilizando una misma función. La esencia de esta característica se manifiesta en patrones de la forma x y, que permiten descomponer una estructura de datos arbitraria en las partes que la conforman. En el presente trabajo estudiamos el problema de type checking para este sistema, realizando esta labor en dos etapas. Primero introducimos un prototipo de implementación que abarca el proceso completo, incluyendo algoritmos para chequeo de equivalencia de tipos y subtipado basados en una caracterización conductual de estas relaciones. Se utilizó Haskell para este primer enfoque, para sacar provecho de la naturaleza funcional del problema. Una vez identificadas las limitaciones del prototipo, se propuso una implementación robusta y eficiente que reduce la complejidad de los pasos clave dentro del proceso, principalmente el chequeo de subtipado. Esta segunda implementación se desarrolló en Scala, utilizando una representación más conveniente para las expresiones de tipos basada en grafos cíclicos.
A type system combining type application, constants as types, union types and recursive types has recently been proposed for statically typing Path Polymorphism, the ability to define functions that can operate uniformly over recursively specified applicative data structures. A typical pattern such functions resort to is x y which decomposes a compound, in other words any applicative tree structure, into its parts. We study type-checking for this type system in two stages. First we introduce a prototype implementation of the whole process that also involves algorithms for checking type equivalence and subtyping based on coinductive characterizations of those relations. We used Haskell for this first approach, to benefit from the functional nature of the problem. After identifying the limitations of the prototype, we propose an efficient and robust implementation that reduces complexity of the key part of the process, namely subtyping check. This was done on Scala using a more convenient representation for type expressions based on cyclic graphs.
Fil: Edi, Juan Ignacio. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. - Materia
-
CALCULOS DE PATRONES
CHEQUEO DE TIPOS
PATH POLYMORPHISM
TIPOS RECURSIVOS
OPERADORES ACI
PATTERN CALCULI
TYPE CHECKING
PATH POLYMORPHISM
RECURSIVE TYPES
ACI OPERATORS - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- https://creativecommons.org/licenses/by-nc-sa/2.5/ar
- Repositorio
.jpg)
- Institución
- Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
- OAI Identificador
- seminario:seminario_nCOM000673_Edi
Ver los metadatos del registro completo
| id |
BDUBAFCEN_1c13d4c1034b723f242481ecb4320ce1 |
|---|---|
| oai_identifier_str |
seminario:seminario_nCOM000673_Edi |
| network_acronym_str |
BDUBAFCEN |
| repository_id_str |
1896 |
| network_name_str |
Biblioteca Digital (UBA-FCEN) |
| spelling |
Chequeo de tipos eficiente para Path PolymorphismEfficient type checking for path polymorphismEdi, Juan IgnacioCALCULOS DE PATRONESCHEQUEO DE TIPOSPATH POLYMORPHISMTIPOS RECURSIVOSOPERADORES ACIPATTERN CALCULITYPE CHECKINGPATH POLYMORPHISMRECURSIVE TYPESACI OPERATORSRecientemente fue propuesto un sistema de tipos que combina tipos aplicativos, constantes, unión y recursivos, para capturar estáticamente la noción de Path Polymorphism. Esto se refiere a la capacidad de operar uniformemente sobre estructuras de datos aplicativas definidas de forma recursiva, utilizando una misma función. La esencia de esta característica se manifiesta en patrones de la forma x y, que permiten descomponer una estructura de datos arbitraria en las partes que la conforman. En el presente trabajo estudiamos el problema de type checking para este sistema, realizando esta labor en dos etapas. Primero introducimos un prototipo de implementación que abarca el proceso completo, incluyendo algoritmos para chequeo de equivalencia de tipos y subtipado basados en una caracterización conductual de estas relaciones. Se utilizó Haskell para este primer enfoque, para sacar provecho de la naturaleza funcional del problema. Una vez identificadas las limitaciones del prototipo, se propuso una implementación robusta y eficiente que reduce la complejidad de los pasos clave dentro del proceso, principalmente el chequeo de subtipado. Esta segunda implementación se desarrolló en Scala, utilizando una representación más conveniente para las expresiones de tipos basada en grafos cíclicos.A type system combining type application, constants as types, union types and recursive types has recently been proposed for statically typing Path Polymorphism, the ability to define functions that can operate uniformly over recursively specified applicative data structures. A typical pattern such functions resort to is x y which decomposes a compound, in other words any applicative tree structure, into its parts. We study type-checking for this type system in two stages. First we introduce a prototype implementation of the whole process that also involves algorithms for checking type equivalence and subtyping based on coinductive characterizations of those relations. We used Haskell for this first approach, to benefit from the functional nature of the problem. After identifying the limitations of the prototype, we propose an efficient and robust implementation that reduces complexity of the key part of the process, namely subtyping check. This was done on Scala using a more convenient representation for type expressions based on cyclic graphs.Fil: Edi, Juan Ignacio. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesBonelli, Eduardo AugustoViso, Andrés Ezequiel2015info: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_nCOM000673_Edispainfo: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-10-23T11:19:01Zseminario:seminario_nCOM000673_EdiInstitucionalhttps://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-10-23 11:19:02.051Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse |
| dc.title.none.fl_str_mv |
Chequeo de tipos eficiente para Path Polymorphism Efficient type checking for path polymorphism |
| title |
Chequeo de tipos eficiente para Path Polymorphism |
| spellingShingle |
Chequeo de tipos eficiente para Path Polymorphism Edi, Juan Ignacio CALCULOS DE PATRONES CHEQUEO DE TIPOS PATH POLYMORPHISM TIPOS RECURSIVOS OPERADORES ACI PATTERN CALCULI TYPE CHECKING PATH POLYMORPHISM RECURSIVE TYPES ACI OPERATORS |
| title_short |
Chequeo de tipos eficiente para Path Polymorphism |
| title_full |
Chequeo de tipos eficiente para Path Polymorphism |
| title_fullStr |
Chequeo de tipos eficiente para Path Polymorphism |
| title_full_unstemmed |
Chequeo de tipos eficiente para Path Polymorphism |
| title_sort |
Chequeo de tipos eficiente para Path Polymorphism |
| dc.creator.none.fl_str_mv |
Edi, Juan Ignacio |
| author |
Edi, Juan Ignacio |
| author_facet |
Edi, Juan Ignacio |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Bonelli, Eduardo Augusto Viso, Andrés Ezequiel |
| dc.subject.none.fl_str_mv |
CALCULOS DE PATRONES CHEQUEO DE TIPOS PATH POLYMORPHISM TIPOS RECURSIVOS OPERADORES ACI PATTERN CALCULI TYPE CHECKING PATH POLYMORPHISM RECURSIVE TYPES ACI OPERATORS |
| topic |
CALCULOS DE PATRONES CHEQUEO DE TIPOS PATH POLYMORPHISM TIPOS RECURSIVOS OPERADORES ACI PATTERN CALCULI TYPE CHECKING PATH POLYMORPHISM RECURSIVE TYPES ACI OPERATORS |
| dc.description.none.fl_txt_mv |
Recientemente fue propuesto un sistema de tipos que combina tipos aplicativos, constantes, unión y recursivos, para capturar estáticamente la noción de Path Polymorphism. Esto se refiere a la capacidad de operar uniformemente sobre estructuras de datos aplicativas definidas de forma recursiva, utilizando una misma función. La esencia de esta característica se manifiesta en patrones de la forma x y, que permiten descomponer una estructura de datos arbitraria en las partes que la conforman. En el presente trabajo estudiamos el problema de type checking para este sistema, realizando esta labor en dos etapas. Primero introducimos un prototipo de implementación que abarca el proceso completo, incluyendo algoritmos para chequeo de equivalencia de tipos y subtipado basados en una caracterización conductual de estas relaciones. Se utilizó Haskell para este primer enfoque, para sacar provecho de la naturaleza funcional del problema. Una vez identificadas las limitaciones del prototipo, se propuso una implementación robusta y eficiente que reduce la complejidad de los pasos clave dentro del proceso, principalmente el chequeo de subtipado. Esta segunda implementación se desarrolló en Scala, utilizando una representación más conveniente para las expresiones de tipos basada en grafos cíclicos. A type system combining type application, constants as types, union types and recursive types has recently been proposed for statically typing Path Polymorphism, the ability to define functions that can operate uniformly over recursively specified applicative data structures. A typical pattern such functions resort to is x y which decomposes a compound, in other words any applicative tree structure, into its parts. We study type-checking for this type system in two stages. First we introduce a prototype implementation of the whole process that also involves algorithms for checking type equivalence and subtyping based on coinductive characterizations of those relations. We used Haskell for this first approach, to benefit from the functional nature of the problem. After identifying the limitations of the prototype, we propose an efficient and robust implementation that reduces complexity of the key part of the process, namely subtyping check. This was done on Scala using a more convenient representation for type expressions based on cyclic graphs. Fil: Edi, Juan Ignacio. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. |
| description |
Recientemente fue propuesto un sistema de tipos que combina tipos aplicativos, constantes, unión y recursivos, para capturar estáticamente la noción de Path Polymorphism. Esto se refiere a la capacidad de operar uniformemente sobre estructuras de datos aplicativas definidas de forma recursiva, utilizando una misma función. La esencia de esta característica se manifiesta en patrones de la forma x y, que permiten descomponer una estructura de datos arbitraria en las partes que la conforman. En el presente trabajo estudiamos el problema de type checking para este sistema, realizando esta labor en dos etapas. Primero introducimos un prototipo de implementación que abarca el proceso completo, incluyendo algoritmos para chequeo de equivalencia de tipos y subtipado basados en una caracterización conductual de estas relaciones. Se utilizó Haskell para este primer enfoque, para sacar provecho de la naturaleza funcional del problema. Una vez identificadas las limitaciones del prototipo, se propuso una implementación robusta y eficiente que reduce la complejidad de los pasos clave dentro del proceso, principalmente el chequeo de subtipado. Esta segunda implementación se desarrolló en Scala, utilizando una representación más conveniente para las expresiones de tipos basada en grafos cíclicos. |
| publishDate |
2015 |
| dc.date.none.fl_str_mv |
2015 |
| 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_nCOM000673_Edi |
| url |
https://hdl.handle.net/20.500.12110/seminario_nCOM000673_Edi |
| 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_ |
1846784893913137152 |
| score |
12.982451 |