Curriculum abreviado de Ricardo Peña Marí Ricardo Peña Marí es Catedrático de Universidad del Departamento de Sistemas Informáticos y Computación de la Universidad Complutense de Madrid e imparte sus clases en la Facultad de Informática. Entre 1984 y 1991 fue Profesor Titular de la Facultad de Informática de Barcelona de la Universidad Politécnica de Cataluña y de 1982 a 1984 trabajó para la empresa privada como jefe de proyecto en el desarrollo de grandes programas dentro de las áreas de telefonía y diseño asistido por ordenador. Es autor del libro de texto Diseño de Programas (Tercera edición, Pearson - Prentice Hall 2005) para estudiantes de segundo curso de Ingeniería Informática, coautor del libro de divulgación para niños La Informática a todo mega (Ediciones SM, 2000, Colección El barco de vapor. Saber) y autor del libro histórico-divulgativo De Euclides a Java: historia de los algoritmos y de los lenguajes de programación (Editorial Nivola, 2006, Colección Ciencia Abierta). Ha publicado alrededor de una cincuentena de artículos cientícos revisados por pares en congresos y revistas internacionales. Colabora con grupos de investigacion europeos y es o ha sido miembro de los Comités de Programa de un amplio número de congresos internacionales. Tambien ha sido investigador principal de varios proyectos del Plan Nacional de Investigación y ha participado en otros proyectos nanciados por la Unión Europea. Sus áreas de investigación en sentido amplio son el diseño y desarrollo de lenguajes de programación y el uso de métodos formales para garantizar la corrección de los programas. Ha trabajado en técnicas de especicacion y diseño de programas con tipos abstractos de datos y en métodos de vericación de programas concurrentes. En los últimos 12 años se ha dedicado al paradigma de programación funcional. Dentro de él, su grupo junto con la Universidad de Marburg (Alemania), han desarrollado el lenguaje funcional-paralelo Edén. Dicho lenguaje permite construir programas que se ejecutan en máquinas con decenas de procesadores con una inversion de esfuerzo mucho menor que si se hubieran desarrollado mediante lenguajes imperativos convencionales. En los últimos años sigue trabajando dentro del paradigma funcional pero más dedicado al análisis estático de programas. El objetivo es diseñar lenguajes y compiladores que garanticen ciertas propiedades de corrección de los programas. Se trata de un uso de los métodos formales en el que la mayor parte del esfuerzo se pone en la construcción del compilador. Las propiedades que está estudiando son la terminación, la ausencia de referencias incorrectas a memoria y la detección de cotas superiores a la memoria necesitada por el programa en tiempo de ejecución. Para ciertos lenguajes y programas restringidos es posible demostrar estas propiedades en tiempo de compilación, lo que conduce a una mayor abilidad de los programas. Este enfoque es especialmente útil en entornos críticos en seguridad. En relación con lo anterior, se pretende también la construcción de certicados de corrección de los programas de forma que una herramienta de demostración externa pueda comprobar que realmente se satisfacen las propiedades que se presumen al programa. Esta característica se enmarca en una línea reciente de investigación a nivel internacional denominada código con demostración asociada o Proof Carrying Code. 1