La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Una Introducción Básica a Sistemas de Tipos Estáticos

Presentaciones similares


Presentación del tema: "Una Introducción Básica a Sistemas de Tipos Estáticos"— Transcripción de la presentación:

1 Una Introducción Básica a Sistemas de Tipos Estáticos
Pablo E. (Fidel) Martínez López

2 “The study of type systems – and of programming languages form a type-theoretical perspective – has become an energetic field with major applications in software engeneering, language design, high-performance compiler implementation, and security.” Benjamin C. Pierce Types and Programming Languages

3 Sistemas de Tipos Estáticos
Overview Definición y características Estilos y presentaciones Métodos de presentación y algoritmos Importancia Conclusiones Bibliografía

4 Sistemas de Tipos Estáticos
¿Qué son? herramientas para determinar propiedades de programas sin ejecutarlos asocian información a cada parte de un programa se basan en el texto del programa, teniendo en cuenta la semántica

5 Sistemas de Tipos Estáticos
Características generales estáticos no ejecutan el programa decidibles (en general) hay un algoritmo que calcula la propiedad ALTERNATIVA: tipos dependientes no decidibles asistentes para la construcción de programas correctos pueden requerir anotaciones del usuario o no diferentes estilos de programación

6 Sistemas de Tipos Estáticos
Estilos de diseño del sistema A la Curry términos sin tipo semántica sobre ellos el sistema de tipo que elimina (ciertos) programas erróneos A la Church términos tipados semántica basada en los tipos

7 Sistemas de Tipos Estáticos
Presentaciones del sistema implícita (términos sin anotaciones de tipos) explícita (términos con anotaciones de tipos) Históricamente los implícitos se presentan a la Curry los explícitos se presentan a la Church Es común mezclar estilo y presentación

8 Sistemas de Tipos Estáticos
Sistemas a la Curry lenguaje de términos semántica sobre este lenguaje lenguaje de tipos relación entre términos y tipos Propiedades fundamental un término con tipo no tiene ciertos errores el tipo describe propiedades del término

9 Sistemas de Tipos Estáticos
Método para especificar la relación juicios (esquemas de) reglas de derivación árboles de derivación Propiedad básica juicio válido  árbol de derivación para él

10 Sistemas de Tipos Estáticos
Características de un sistema dado relaciones funcionales (o no) a cada término le corresponde un único tipo relaciones dirigidas por sintaxis (o no) hay una regla por cada construcción del lenguaje Implicaciones Para 1. los algoritmos son casi triviales Para 2. los algoritmos son recursivos

11 Sistemas de Tipos Estáticos
¿Y si el sistema no es funcional o dirigido por sintaxis? Diseñamos uno equivalente que lo sea ¡Debe demostrarse en qué sentido son equivalentes! Típicamente: relación entre diferentes tipos para un término, establecer la relación entre la salida del algoritmo y sus tipos

12 Sistemas de Tipos Estáticos
Importancia ventajas para los programadores chequeo de errores comunes documentación rudimentaria posibilidades de optimización al compilar desarrollos posteriores basados en ellos Types & Effects Type Specialization Grammar Based Analysis

13 Sistemas de Tipos Estáticos
Conclusiones proveen numerosas ventajas alimentaron el desarrollo de nuevas técnicas presentes en la mayoría de los lenguajes mainstream, de una forma u otra

14 Sistemas de Tipos Estáticos
Bibliografía Benjamin C. Pierce. Types & Programming Languages. The MIT Press, 2002 John C. Reynolds. Theories of Programming Languages. Cambridge University Press, 1998. Pablo E. Martínez López. Static Type Systems: From Specification to Implementation. Chapter 11 of Verification, Validation and Testing in Software Engeneering. Aristides Dasso and Ana Funes (eds.). Idea Group Publishing, 2005.


Descargar ppt "Una Introducción Básica a Sistemas de Tipos Estáticos"

Presentaciones similares


Anuncios Google