principal type sepcialization of dynamic sum-types tesina de licenciatura en cs. de la computación...
TRANSCRIPT
![Page 1: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/1.jpg)
Principal Type Sepcialization of Dynamic Sum-Types
Tesina de Licenciatura en Cs. de la ComputaciónFac. Cs. Exactas, Ingeniería y Agrimensura
Universidad Nacional de Rosario
IX Jornadas de Informática e Investigación OperativaFacultad de Informática
Alejandro C. [email protected]
http://www.fceia.unr.edu.ar/~russo/
![Page 2: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/2.jpg)
Introducción
Program Specialization(Partial Evaluation)
Source Code
Residual Codes
![Page 3: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/3.jpg)
Type Specialization
➔Es una forma general de “type inference” para lograr programspecialization
➔Refinar el sistema de tipos del lenguajeresidual
![Page 4: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/4.jpg)
Residual Type System
Residual Program
Source Program
Source Type System
➔Resumiendo...
InformaciónEstática
InformaciónDinámica
![Page 5: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/5.jpg)
➔Introducción de un juicio (judgement) responsable de la especialización de programas
Source Program
Source Type
Residual Program
Residual Type
SpecializationAssignment
(Free Variables)
➔Se especifica el proceso de especialización mediante un conjunto de reglas formales
![Page 6: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/6.jpg)
Source Program
Residual Program
![Page 7: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/7.jpg)
Source Program
Residual Program
![Page 8: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/8.jpg)
Source Program
Residual Program
![Page 9: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/9.jpg)
Source Program
Residual Program
Source Type Residual Type
![Page 10: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/10.jpg)
Source Program
Residual Program
Source Type Residual Type
![Page 11: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/11.jpg)
Source Program
Residual Program
Source Type Residual Type
![Page 12: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/12.jpg)
➔Ejemplos...
![Page 13: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/13.jpg)
➔Ejemplos...
¿en qué influye esta decisión?
![Page 14: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/14.jpg)
➔Si una expresión es polivariante, entonces puede especializarseen más de una forma
➔Marcamos en el source program qué expresiones son polivariantes y dónde se utilizan (poly / spec)
La expresión dentro de polyse especializó dos veces
➔Para armar la tupla tengo que conocer todos los spec
Otra especialización válida
![Page 15: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/15.jpg)
➔¿Conocer todos los specs?
•Hay infinitas especializaciones posibles (no
relacionadas)
•Para especializar la función debo esperar a
conocer su
argumento (¿especialización modular?)
•Problema: falta de principalidad (lack of
principality)
![Page 16: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/16.jpg)
Principal Type Specialization
•Queremos especializar en forma modular
•En ausencia de información ¿Qué hacemos?
•Haskell
![Page 17: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/17.jpg)
➔Queremos especializar pero, si nos falta información, diferiremos las decisiones
➔Las decisiones afectan al código generado por la especialización
➔Necesidad de principalidad
Especialización
![Page 18: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/18.jpg)
➔Queremos especializar pero, si nos falta información, diferiremos las decisiones
➔Las decisiones afectan al código generado por la especialización
➔Necesidad de principalidad
Especialización
![Page 19: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/19.jpg)
➔Queremos especializar pero, si nos falta información, diferiremos las decisiones
➔Las decisiones afectan al código generado por la especializacion
➔Necesidad de principalidad
Especialización
Evidencia de predicados¿Para qué nos sirve?
➔Teoría de “Qualified Types” de Mark Jones (Ph.D. Thesis, Cambridge, 1991)
➔Pablo E. Martínez López adaptó esta teoría para usarla en el proceso de especialización
![Page 20: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/20.jpg)
Source Program
Source Type
SpecializationAssignment
(Free Variables)
Conjunto de Predicados
![Page 21: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/21.jpg)
➔El sistema P captura todas las posibles especializaciones de un source program (inclusive la principal)
➔Si escribiera un algoritmo, ¿qué especialización debería obtener?
➔Especialización Principal + Mecanismo de Instanciación Automatizable = Obtengo la especialización que necesito en el momento necesario
Unificar y calcular evidencia de predicados
![Page 22: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/22.jpg)
➔Las reglas...
Entailment
![Page 23: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/23.jpg)
➔Las reglas (continuación)...
![Page 24: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/24.jpg)
➔Ejemplos...
➔¿Conocer todos los specs?
![Page 25: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/25.jpg)
Principal Type Specialization of Dynamic Sum-Types
➔Introducir la capacidad de especializar dynamic sum-types➔¿Qué queremos?
![Page 26: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/26.jpg)
Desapareció una rama
¿?
➔¿Principalidad?
![Page 27: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/27.jpg)
➔Este trabajo...
➔Se extendieron los sitemas de reglas formales para poder manipular dynamic sum-types
➔Se eliminan aquellas ramas de los cases que no son necesarias(menos código muerto)
➔No se generan declaraciones de constructores que no se utilizan(menos código muerto)
➔Libertad para combinar constructores y cases dinamicos con las construcciones poly y spec
➔Se extendieron las demostraciones de la tesis de doctorado de Pablo E. Martínez López para demostrar que el sistema sigue manteniendo la noción de principalidad
![Page 28: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/28.jpg)
➔Este trabajo (continuación II)...
➔Se extendio el prototipo ya existente (Mónadas, Clases, etc.)
➔Se detectaron y arreglaron algunos bugs
➔Se implemento constraint solving (no se formalizo)
![Page 29: Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad](https://reader035.vdocument.in/reader035/viewer/2022062410/5665b42e1a28abb57c8fd5ed/html5/thumbnails/29.jpg)
¿Preguntas?