• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 2
  • Tagged with
  • 2
  • 2
  • 2
  • 2
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Improving the efficiency and reliability of gradual typing

Allende Prieto, Esteban Armando January 2015 (has links)
Doctor en Ciencias, Mención Computación / Gradual Typing permite a un programador aplicar tipos estáticos a ciertas partes de un programa, dejando el resto dinámicamente tipeado. Sin embargo, esto viene con un costo en el rendimiento. Una razón es que el runtime tiene que realizar siempre un casteo en el borde entre tipos estáticos y dinámicos. Otra razón es que el borde puede ser creado accidentalmente. Esto también trae un efecto lateral de reducir la fiabilidad del código estático, porque ahora el programador no puede garantizar que su código no arrojará errores de tipo en tiempo de ejecución. En este trabajo de tesis, mejoramos el rendimiento y la fiabilidad de los programas gradualmente tipeados. Para esto, desarrollamos un lenguaje gradualmente tipeado, Gradualtalk, y luego presentamos dos novedosas ideas: hybrid strategy y Confined Gradual Typing. La hybrid strategy es una nueva forma de insertar los casts al invocar métodos que combina dos estrategias existentes, permitiendo obtener el mejor rendimiento de ambas. Validamos esta afirmación con benchmarks. Confined Gradual Typing refina gradual typing con anotaciones para prohibir explícitamente ciertos cruces de frontera entre el código estáticamente y dinámicamente tipeado. Nosotros desarrollamos formalmente dos variantes de CGT que capturan diferentes compromisos entre flexibilidad/garantías. Probamos que CGT es type sound y que las anotaciones ofrecen las garantías esperadas.
2

Empirically-driven design and implementation of Gradualtalk

Álvarez Callaú, Óscar Edwin January 2015 (has links)
Doctor en Ciencias, Mención Computación / Los lenguajes de tipado dinámico permiten un desarrollo ágil, el cual es util para construir prototipos rápidamente. Sin embargo, cuando estos pequeños programas se convierten en aplicaciones grandes, depurar se vuelve una tarea tediosa. Esto se debe principalmente a que los errores son solo detectables en tiempo de ejecución. Smalltalk, al ser un lenguaje de tipado dinámico, sufre de estos problemas. Los sistemas de tipos pueden disminuir ciertos errores de los lenguajes de tipado dinámico. Además, la inserción de tipos mejora la documentación de APIs, provee mejor soporte a los editores y ayuda a optimizar la compilación. Los sistema de tipos, especialmente diseñados para lenguajes existentes, son llamados sistema de tipos retro-alimentados (retrofitted type systems en inglés). Diseñar un sistema de tipos retro-alimentado es una tarea complicada. Esto se debe a que tales sistemas de tipos deben soportar patrones de programación muy particulares (llamados idioms), minimizar la refactorización de código por la inserción de tipos, y proveer una integración entre las partes (ej. módulos) con y sin tipos. Estos problemas son exacerbados cuando el lenguaje destino es altamente dinámico, como Smalltalk. Si bien se ha intentado insertar tipos en Smalltalk, el ejemplo mas notable es Strongtalk, ellos no han sido diseñados de un modo de ser sistemas de tipos retro-alimentados. Ademas Strongtalk es un sistema de tipos opcional, es decir que las garantías estáticas no necesariamente se cumple en tiempo de ejecución. En este trabajo de tesis, nosotros presentamos Gradualtalk, un sistema de tipos retro-alimentado para Smalltalk, que soporta la mayoría de las características particulares e idioms de Smalltalk. En la parte del diseño, nosotros analizamos detalladamente cual es el mejor sistema de tipos gradual y aquellas extensiones que mejor encajan en Gradualtalk. Cada una de estas extensiones son claramente justificadas usando evidencia (empírica) disponible en la literatura o propuesta por nosotros. En detalle, nosotros presentamos como evidencia empirical dos estudios a larga escala sobre las características dinámicas de Smalltalk y sobre los predicados de tipos. Ademas presentamos tres estudios preliminares sobre el uso de self, el uso de variables que pueden representar varios valores de diferente tipos, y el uso de colecciones. Con toda esta información implementamos una primera version de Gradualtalk. Finalmente, validamos Gradualtalk mediante la inserción de tipos de varios proyectos Smalltalk reales.

Page generated in 0.0631 seconds