3ras. Jornadas de Ciencias de la Computación

6 y 7 de diciembre de 2005

Facultad de Ciencias Exactas Ingeniería y Agrimensura

Universidad Nacional de Rosario

Lugar: Facultad de Ciencias Exactas, Ingeniería y Agrimensura. Av. Pellegrini 250, Rosario.

Organiza: Departamento de Ciencias de la Computación.

Las Jornadas de Ciencias de la Computación (JCC) se presentan como una iniciativa del Departamento de Ciencias de la Computación de la Facultad de Ciencias Exactas, Ingeniería y Agrimensura de la Universidad Nacional de Rosario, de carácter abierto y gratuito con el objetivo de promover el contacto de los alumnos de la Facultad con investigadores y profesionales en temas relacionados con el ámbito de las ciencias de la computación.

Fotos de las Jornadas

Martes 6
11h00 - 12h00
Gramáticas de Atributos y sus Aplicaciones
Marcelo Arroyo
Introducción al formalismo de las Gramáticas de Atributos, características y clasificación. Métodos de evaluación. Aplicaciones para el cómputo sobre árboles con atributos (generación de procesadores de lenguajes). Relaciones con los paradigmas de programación funcional y lógica. Herramientas existentes.
Presentación
Receso
14h15 - 15h00
Teleportación Cuántica
Alejandro Díaz Caro
Se presentará el algoritmo de teleportación de 1-qubit diseñado por Charles Bennett y luego un simple y comprensivo método para generalizar dicho algoritmo a la teleportación de N-qubits en términos de compuertas cuánticas.
Presentación
15h15 - 16h00
Software Transactional Memory pdf pdf
Duilio Javier Protti
Se menciona al deadlock como uno de los problemas más frecuentes de la programación concurrente. En realidad, el deadlock es un problema de algunos enfoques usados para tratar concurrencia, el de aquellos basados en locks. Existen otros modelos más recientes para tratarla. Software Transactional Memory es uno de ellos, en el cual no existe deadlock, livelock ni priority inversion. Se mostrará a lo largo de la presentación la evolución de este último modelo, cómo resuelve los requerimientos de concurrencia y cómo está ya al alcance de la mano con la tecnología actual. En particular se analizará una de sus más recientes variantes, Composable Memory Transactions, con la cuál se pueden componer transacciones manteniendo corrección con respecto a la concurrencia sin esfuerzo extra, lo que permite una gran escalabilidad.
16h15 - 17h15
Teoría de Tipos y Coq en la Enseñanza de Programación Funcional e Imperativa
Taller de Construcción Formal de Programas pdf
Carlos Daniel Luna
Una propuesta para apoyar la enseñanza de métodos formales en una currícula de grado, usando el asistente de pruebas Coq y conceptos del área de Teoría de Tipos. Se propone un taller de especificación, derivación y verificación de sistemas en los paradigmas de programación funcional e imperativo, que puede también ser adaptado a sistemas reactivos y de tiempo real. Se describen experiencias en el desarrollo del taller y se plantean posibles cambios y extensiones.
Presentación
17h30 - 18h15
El Proyecto GKappa
Adrián Biga
El proyecto Gkappa es un proyecto GNU de generación de código abierto del software KAPPA-PC, utilizado en la materia "Introduccion a la Inteligencia Artificial" de la carrera de Lic. en Cs. de la Computación y apoyado por sus profesoras, Ana Casali y Rosa Corti. Actualmente este trabajo comprende una tesina y 2 trabajos finales de cátedra. El objetivo de este proyecto es lograr un software con las mismas cualidades que ofrece el software comercial actualizándolo a una tecnología de 32-bits y de código abierto. Se espera durante la presentación que los asistentes propongan ideas para mejorar el producto y se interesen en participar del proyecto.
Presentación
Miércoles 7
10h00 - 11h00
Verificación de Sistemas de Tiempo Real en Teoría de Tipos
Un Caso de Estudio: "The RailRoad Crossing Example in Coq" pdf
Carlos Daniel Luna
Para el análisis de sistemas de tiempo real se destacan dos enfoques formales: la verificación de modelos y el análisis deductivo basado en asistentes de prueba. El primero se caracteriza por ser completamente automatizable pero presenta dificultades al tratar sistemas con un gran número de estados o que tienen parámetros no acotados. El segundo permite tratar con sistemas arbitrarios pero requiere la interacción del usuario. Este trabajo explora una metodología que permite compatibilizar el uso de un verificador de modelos como Kronos y el asistente de pruebas Coq en el análisis de sistemas de tiempo real. Se pone especial énfasis en el análisis de un caso de estudio, considerado como un benchmark en diferentes trabajos: el control de un paso a nivel de tren.
Presentación
11h15 - 12h15
La Noción de Principalidad en Especialización de Tipos
Pablo E. Martínez López
En esta charla se describirá una técnica de producción automática de programas conocida como Especialización de Tipos, y se explicarán los últimos resultados obtenidos en el área, como parte de la tesis de doctorado del disertante.
Presentación
Receso
14h45 - 15h45
Una Herramienta para la Fusión de Programas Haskell
Alberto Pardo
Los lenguajes funcionales poseen un alto nivel de abstracción que contribuye al proceso de diseño y construcción de software. El programador funcional suele no preocuparse por aspectos de bajo nivel, tales como uso y gerenciamiento de memoria. Estos aspectos, así como la generación de código eficiente, pasan a ser en gran medida responsabilidad del compilador, por lo que toda optimización de código que el compilador pueda realizar pasa a ser de particular relevancia. Existe una gran variedad de técnicas de transformación de programas cuyo objetivo es optimizar código. Una de dichas técnicas se conoce como fusión. Su utilización en la optimización de programas funcionales se origina en el uso frecuente y sistemático de la operación de composición de funciones como forma de estructurar los programas. Los programas así escritos suelen ser más legibiles y su mantenimiento más sencillo, pero a la vez menos eficientes debido a que toda composición tiene asociada la construcción y consumo de una estructura de datos intermedia. La técnica de fusión tiene como objetivo la eliminación automática de tales estructuras intermedias. Se basa en ciertas leyes algebraicas entre programas, conocidas como leyes de fusión, que suelen estar asociadas a un conjunto de operadores recursivos (e.g. fold, map, etc.), que encapsulan patrones comunes de computación y dan origen a un mecanismo adicional de estructurar los programas. En esta charla presentaremos los aspectos principales de una herramienta, llamada HFusion, que permite la fusión automática de programas escritos en Haskell.
Presentación
16h00 - 16h45
Deforestación Shortcut Monádica
Cecilia Manzino
Los programas funcionales suelen construirse usando un estilo composicional. Las funciones definidas usando este estilo tienen las ventajas de ser claras y modulares, pero no son necesariamente eficientes. En cada composición de funciones una estructura de datos intermedia puede crearse para pasar información de una función a otra. La deforestación es una técnica de transformación de programas que permite derivar funciones que evitan la construcción de estructuras de datos intermedias. Se han propuestos muchas técnicas para deforestación, pero no todas pueden usarse para transformar programas con efectos. En esta tesina se presenta una transformación que puede ser usada para eliminar estructuras de datos intermedias en programas con efectos.
Presentación
17h00 - 17h45
Redes de Petri con Múltiples Instancias
Sergio Giro
Las Redes de Petri son un formalismo para probar propiedades de corrección en sistemas concurrentes. Se expondrá una extensión al formalismo para contemplar el caso en el que un número indefinido de procesos con el mismo comportamiento se ejecuta concurrentemente. Se ilustrará el uso del formalismo con una versión renovada del problema de los filósofos comensales. La extensión se realiza dotando a las redes de una estructura jerárquica, utilizando la jerarquía de la red para asignar diferentes colores a las fichas, relacionando así la jerarquía y el color, que constituyen las extensiones tradicionales a las Redes Petri. La diferencia entre la extensión tradicional y la aquí presentada es que en la tradicional la asignación de colores es arbitraria (y por tanto no pueden hacerse deducciones sobre ella), mientras que en las Redes de Petri con Múltiples Instancias la transformación tiene una estructura dependiente de la jerarquía.
Receso
18h30
Acto de Clausura y Entrega de Diplomas de Fin de Curso
Acto de clausura, con la participación de autoridades de la Facultad y diserantes invitados. Entrega de diplomas de fin de cursado a alumnos de la carrera de Lic. en Cs. de la Computación.
20h30
Cena de Camaradería
Cena de camaradería en el patio de la Facultad. Precio de la tarjeta: $12. Venta de tarjetas durante todo el martes 6 y el miércoles 7 a la mañana. Consultar con los organizadores.

Otras actividades:

Lunes 5/12 - Fútbol en el predio de la Ciudad Universitaria.

Sábado 10/12 - Volley en el Parque Regional Sur. Encargada: Cristina Széliga