dc.contributorTanter, Éric
dc.contributorBergel, Alexandre
dc.contributorMateu Brulé, Luis
dc.contributorFigueroa Palet, Ismael
dc.creatorLehmann Meléndez, Nicolás Emilio
dc.date.accessioned2017-06-12T18:44:26Z
dc.date.available2017-06-12T18:44:26Z
dc.date.created2017-06-12T18:44:26Z
dc.date.issued2017
dc.identifierhttps://repositorio.uchile.cl/handle/2250/144325
dc.description.abstractLos tipos refinados (Refinement Types) son una técnica efectiva de verificación basada en lenguajes que extienden la expresividad de los sistemas de tipos tradicionales incluyendo la posibilidad de restringir valores usando predicados lógicos. Sin embargo, como cualquier otra disciplina de tipos expresiva, obligan a los programadores a lidiar con las estrictas restricciones impuestas por los tipos. Esto puede resultar ser demasiado tedioso para los programadores, especialmente en etapas tempranas de desarrollo donde el código cambia constantemente. Nosotros conjeturamos que esta rigidez no deseada puede obstaculizar la adopción de los tipos refinados. Los tipos graduales (Gradual Typing) permiten combinar la flexibilidad de los lenguajes dinámicamente tipados con las garantías otorgadas por los lenguajes estáticamente tipados. Usando tipos graduales, los programadores pueden comenzar un desarrollo con código chequeado completamente de forma dinámica y aprovechar la flexibilidad de las construcciones idiomáticas típicas de los lenguajes dinámicos. A medida que el código se vuelve más estable, el programador o la programadora puede escoger verificar estáticamente ciertas porciones del programa, haciendo precisos los tipos en esos puntos. Finalmente, si lo desea, también puede decidir verificar el código completamente de forma estática. Los sistemas de tipos graduales aseguran una transición suave entre estos distintos niveles de precisión. Esta tesis demuestra como los tipos graduales pueden ser extendidos para soportar los tipos refinados, permitiendo una evolución suave además de interoperabilidad entre tipos simples y tipos lógicamente refinados. Al hacer esto, se atacan dos desafíos previamente inexplorados en la literatura sobre tipos graduales: lidiar con información lógica imprecisa y con la presencia de tipos dependientes. El primer desafío condujo a una noción crucial de localidad para fórmulas, mientras que el segundo desafío terminó en la definición de novedosos operadores relacionados con substitución al nivel de tipos y términos, que identifican nuevas oportunidades para errores en tiempo de ejecución en lenguajes graduales con tipos dependientes.
dc.languageen
dc.publisherUniversidad de Chile
dc.rightshttp://creativecommons.org/licenses/by-nc-nd/3.0/cl/
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 Chile
dc.subjectLenguajes de programacion
dc.subjectTyping dynamic
dc.subjectSMT solver
dc.titleGradual refinement types
dc.typeTesis


Este ítem pertenece a la siguiente institución