Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad.

Slides:



Advertisements
Presentaciones similares
Sistemas Multiagentes en Ambientes Dinámicos: Planificación Continua mediante PDDL Grupo de Investigación en Lenguajes e Inteligencia Artificial Departamento.
Advertisements

Algoritmos y Programas
Introducción al Teorema de Gödel Eduardo Alejandro Barrio UBA - CONICET 2do Cuatrimestre de 2009 Eduardo Alejandro Barrio UBA.
Introducción al Teorema de Gödel Eduardo Alejandro Barrio UBA - CONICET 2do Cuatrimestre de 2009 Eduardo Alejandro Barrio UBA.
Francisco X. Fagas A. Intergrupo - Ecuador
SEXTO PASO El investigador debe concibir la manera práctica y concreta de responder a la preguntas de investigación y cubrir sus objetivos ó intereses.
José Manuel Cortés López Programación Declarativa Avanzada
¿Cómo hacer para que una máquina comprenda el LN?
UNIDAD II: ALGORITMOS Y LENGUAJES
ALGEBRA RELACIONAL Y CALCULO RELACIONAL CON REFERENCIA A BASE DE DATOS
Introducción al lenguaje de especificación JML
Polimorfismo Unidad 4.
Programación I Teoría III
Una Introducción Básica a Sistemas de Tipos Estáticos
Técnico en programación de Software
Tipo de Dato Abstracto Tipos de datos:
PROCEDURES AND IMPLEMENTATION EXPERIMENTAL ECONOMICS.
Introducción al lenguaje de programación lógico Prolog
Introducción a la Programación
INTERFAZ DE ACCES DISEÑO DE BASE DE DATOS
Algoritmo y Estructura de Datos I
CAPITULO 2 La Representación del Conocimiento
Ciencias de la Computación I
REPRESENTACIÓN GRÁFICA DE ALGORITMOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
PROGRAMACIÓN LÓGICA.
Programa: Tecnologías de la Información y Desarrollo de Software.
Sistemas Evolutivos Introduccion.
Programación de Computadores
Modelado Arquitectónico
Semana 5 Subprogramas..
1 Reunión Proyecto EduCaMontevideo - Noviembre 2005 Búsqueda de Recursos Educacionales considerando Aspectos Culturales Cristina Bender - Claudia Deco.
LEDA Un Lenguaje para la Especificación y Validación de Arquitecturas de Software Carlos Canal Velasco Depto. de Lenguajes y Ciencias de la Computación.
ANALISIS SINTACTICO Parte I
TIPOS DE DATOS ABSTRACTOS
Inteligencia artificial
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Computación II Unidad IV Funciones y Módulos. Objetivos: –Comprender como construir programas en forma modular partiendo de pequeñas partes conocidas.
Unidad VI Documentación
Mantenimiento del Software
Junio I Jornadas de trabajo META Subproyecto METAMETHOD - Soporte a la Especificación de Metodologías de Desarrollo mediante Técnicas MDD -
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
Recurrencia Programación II de enero de 2009.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Calidad y Garantía de Calidad
Introducción a la Ingeniería de Sistemas
UNEXPO REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA “ANTONIO JOSÉ DE SUCRE” VICE-RECTORADO “LUÍS CABALLERO MEJÍAS”
 DSS es un sistema informático utilizado para servir de apoyo, más que automatizar, el proceso de toma de decisiones.
Dr. Guillermo H. Kaufmann
1. Asistentes de Pruebas para Lógicos y Matemáticos I
Elementos básicos para el desarrollo de algoritmos
Modelo en Cascada Planeación Estratégica Estudio de Factibilidad
Algorit moAlgorit mo An á lisisAn á lisis Argumen toArgumen to Asignación Asociación Cometar ioCometar io Compilación Constan teConstan te Definición.
“Introducción a las Ciencias de la Informática”
SENA REGIONAL HUILA REGIONAL HUILA CENTRO DE LA INDUSTRIA LA EMPRESA Y LOS SERVICIOS Huila Elementos de sistemas de información.
Metodología de la programación
DEV- C++ ·include <iostream> Int x x=x+2(x)
Programa: Tecnologías de la Información y Desarrollo de Software.
Sistemas Basados en Reglas
GENERADOR DE CÓDIGO FUENTE COBOL
TEMA: DISEÑO DE LA SOLUCION INTREGRANTES DE EQUIPO: ERIKA CRUZ MARTINEZ RODOLFO LOPEZ ANOTA LUIS ARMANDO LIÑA QUECHA JOSE FRANCISCO MEZO VARELA LUIS ENRIQUE.
 es el conjunto de conocimientos y técnicas científicas aplicadas al desarrollo, implementación, mantenimiento y perfeccionamiento de estructuras (tanto.
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
REGLAS PARA ELABORAR SEUDOCODIGOS Y DIAGRAMA DE FLUJO
Las fases del ciclo de la vida de desarrollo de sistemas
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
1 Clase 6: control (1ª parte) iic1102 – introducción a la programación.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
ACTIVIDADES DE APRENDIZAJE. ABCFHOEPRIAUDTCDAFDAHOELBADTAQTU PERYUIAETNEDNECSEDAUFHVCMNXAOSOS RSZXVGSDACAAERYFNIAEFGFGSAROPARA OQANALSISZAPATERASECUENCIATRTAXZ.
Oriana Valderrama. Es una herramienta ofimática perteneciente al conjunto de programas denominados hoja de cálculo electrónica, en la cual se puede escribir,
Transcripción de la presentación:

Principal Type Sepcialization of Dynamic Sum-Types Tesina de Licenciatura en Cs. de la Computación Fac. Cs. Exactas, Ingeniería y Agrimensura Universidad Nacional de Rosario IX Jornadas de Informática e Investigación Operativa Facultad de Informática Alejandro C. Russo

Introducción Program Specialization (Partial Evaluation) Source Code Residual Codes

Type Specialization ➔ Es una forma general de “type inference” para lograr program specialization ➔ Refinar el sistema de tipos del lenguaje residual

Residual Type System Residual Program Source Program Source Type System ➔ Resumiendo... Información Estática Información Dinámica

➔ Introducción de un juicio (judgement) responsable de la especialización de programas Source Program Source Type Residual Program Residual Type Specialization Assignment (Free Variables) ➔ Se especifica el proceso de especialización mediante un conjunto de reglas formales

Source Program Residual Program

Source Program Residual Program

Source Program Residual Program

Source Program Residual Program Source TypeResidual Type

Source Program Residual Program Source TypeResidual Type

Source Program Residual Program Source TypeResidual Type

➔ Ejemplos...

¿ en qué influye esta decisión?

➔ Si una expresión es polivariante, entonces puede especializarse en 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 poly se especializó dos veces ➔ Para armar la tupla tengo que conocer todos los spec Otra especialización válida

➔ ¿ 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)

Principal Type Specialization Queremos especializar en forma modular En ausencia de información ¿ Qué hacemos? Haskell

➔ 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

➔ 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

➔ 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 ¿P ara 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

Source Program Source Type Specialization Assignment (Free Variables) Conjunto de Predicados

➔ 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

➔ Las reglas... Entailment

➔ Las reglas (continuación)...

➔ Ejemplos... ➔ ¿ Conocer todos los specs?

Principal Type Specialization of Dynamic Sum-Types ➔ Introducir la capacidad de especializar dynamic sum-types ➔ ¿ Qué queremos?

Desapareció una rama ¿?¿? ➔ ¿ Principalidad?

➔ 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

➔ 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)

¿Preguntas?