Titulo: Construyendo sistemas embebidos seguros usando técnicas de lenguajes de programación
Resumen: Los
lenguajes de bajo nivel, como C/C++, son altamente usados en la
industria para desarrollar sistemas embebidos. La forma de programar
estos sistemas involucran detalles internos de la computadora como el
uso de punteros a memoria como así también una manejo manual de memoria
dinámica. La historia del software nos muestra que entre los errores mas
comunes, y difíciles de corregir, es la presencia de punteros inválidos
(dangling pointers en ingles), es decir, punteros que referencian a
lugares de memoria inválidos o que no están mas en uso. Cuando los
sistemas embebidos además son concurrentes, también hay problemas de
condición de carreras (data races) en los datos que manejan. Sería muy
beneficioso para los programadores que el compilador pueda ayudar a los
programadores a evitar introducir punteros de memoria inválidos o
condiciones de carrera en su código, construyendo así un sistema mas
seguro.
Rust es un lenguaje recientemente
desarrollado por Mozilla para desarrollar sistemas que requieren alta
performance y un ambiente de ejecución pequeño
(runtime).
Parte del navegador Firefox ya esta implementado en este lenguaje. Rust
usa principios de lenguajes de programación e implementa un sistema de
tipos
capaz de detectar la posibilidad de introducir punteros inválidos y
maneja la memoria automáticamente si la necesidad de un recolector de
basura
(garbage-collector). En esta charla, se explicaran los
principios y filosofía detrás de Rust y cómo estos podrían ser
aprovechados para construir sistemas
embebidos mas seguros.
Biografía: Alejandro Russo
es un profesor asociado de la universidad tecnologica de Chalmers
(Gotemburgo, Suecia). Su trabajo se expande entre la intersección de
lenguajes de programación, sistemas, y seguridad. Prof. Russo ha recibido distinciones como el premio a investigación de Google (Google Research Award) y
varios
fundos de institutos suecos de investigación (Vetenskapsrådet, STINT,
and Barbro Osher foundation). Internacionalmente, A trabajado en
Stanford University
por a periodo de un año y medio como
profesor visitante y ha dado cursos en la Escuela de Ciencias
Informaticas (ECI) en dos oportunidades.