La obra científica de Tony Hoare Primer Dr. Honoris Causa
Transcripción
La obra científica de Tony Hoare Primer Dr. Honoris Causa
La obra cientı́fica de Tony Hoare Primer Dr. Honoris Causa en Informática por la UCM Ricardo Peña Marı́ Catedrático de Universidad de Lenguajes y Sistemas Informáticos Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid Facultad de Informática de la UCM, 23 de abril de 2013 Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 1 / 36 Índice 1 Biografı́a 2 La programación estructurada 3 Lenguajes concurrentes 4 Modelos de concurrencia 5 Teorı́as Unificadoras de la Programación 6 The Grand Challenge for Computing Research 7 Distinciones y premios Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 2 / 36 Biografı́a Resumen biográfico • Sir Charles Antony Richard Hoare, más conocido como Tony Hoare, nació en 1934 en Colombo, capital de la antigua Ceilán • En 1956 se graduó en Lenguas Clásicas y Filosofı́a por la Universidad de Oxford • Comenzó trabajando en la Universidad Estatal de Moscú, donde ideó su famoso algoritmo de ordenación quicksort • Entre 1960 y 1968 trabajó para la empresa británica Elliot Computers. Allı́ dirigió el desarrollo de un compilador para el lenguaje Algol-60, y se involucró en el diseño de sus lenguajes sucesores: Algol-W, y Simula-67 • Fue profesor entre 1968 y 1977 de la Queen University of Belfast • Después pasó a liderar el Programming Research Group de la Universidad de Oxford, hasta su retiro en 1999 • Actualmente es Investigador Principal en el Microsoft Research Center de Cambridge Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 3 / 36 Biografı́a Quicksort void quicksort ( elem v [] , int a , int b ) { // P r e : 0 ≤ a ≤ b+1 ≤ n int p ; if ( a < b ) { particion (v , a , b , p ); quicksort (v , a , p -1); quicksort (v , p +1 , b ); } // P o s t : v o r d e n a d o e n t r e a y b y e s p e r m u t a c i ó n d e l } original // i n i c i a l m e n t e : q u i c k s o r t ( v , 0 , n − 1 ) ; Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 4 / 36 Biografı́a Quicksort (Extracto del discurso The Emperor’s old clothes) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 5 / 36 Biografı́a El descubrimiento de Algol-60 (Extracto del discurso The Emperor’s old clothes) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 6 / 36 La programación estructurada Índice 1 Biografı́a 2 La programación estructurada 3 Lenguajes concurrentes 4 Modelos de concurrencia 5 Teorı́as Unificadoras de la Programación 6 The Grand Challenge for Computing Research 7 Distinciones y premios Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 7 / 36 La programación estructurada El artı́culo seminal de la verificación formal de programas (Communications of the ACM (12), 10, Octubre de 1969) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 8 / 36 La programación estructurada Las ternas de Hoare ... Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 9 / 36 La programación estructurada La axiomatización del lenguaje de programación Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 10 / 36 La programación estructurada El movimiento de la Programación Estructurada • Libro con ese nombre en 1972, por E. W. Dijkstra, C. A. R. Hoare y O.-J. Dahl • Precedido por la crisis del software de los 60 y la conferencia Software Engineering celebrada en Garmisch en 1968 • Los mensajes principales: • Diseño descendente • Razonamiento formal • Prohibición de la instrucción go-to • Lenguajes más modestos y seguros • Hoare contribuye con un capı́tulo sobre Notes on Data Structuring • Abandona el IFIP WG 2.1 sobre Algol-68 y se une al WG 2.3 sobre nuevas metodologı́as • Colabora con N. Wirth en la definición de Pascal Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 11 / 36 La programación estructurada Corrección de la implementacion de TADS Introduce las nociones clave de Función de Abstracción y de Invariante de la Representación, que hoy se enseñan en los cursos sobre Estructuras de Datos (Proof of Correctness of Data Representations, Acta Informatica, 1972) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 12 / 36 Lenguajes concurrentes Índice 1 Biografı́a 2 La programación estructurada 3 Lenguajes concurrentes 4 Modelos de concurrencia 5 Teorı́as Unificadoras de la Programación 6 The Grand Challenge for Computing Research 7 Distinciones y premios Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 13 / 36 Lenguajes concurrentes Monitores (Communications of the ACM (17) 10, Octubre de 1974) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 14 / 36 Lenguajes concurrentes Ejemplo de monitor Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 15 / 36 Lenguajes concurrentes Procesos Secuenciales Comunicantes Hacia 1975 aparece el microprocesador y se hace evidente que los mecanismos basados en memoria compartida son insuficientes. Comienza la Programación Distribuida (Communications of the ACM (21) 8, Agosto de 1978) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 16 / 36 Lenguajes concurrentes Ejemplo de programa CSP Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 17 / 36 Lenguajes concurrentes Ejemplo de programa CSP (Cont.) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 18 / 36 Lenguajes concurrentes Recepción del Premio Turing, prefacio de la ACM Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 19 / 36 Modelos de concurrencia Índice 1 Biografı́a 2 La programación estructurada 3 Lenguajes concurrentes 4 Modelos de concurrencia 5 Teorı́as Unificadoras de la Programación 6 The Grand Challenge for Computing Research 7 Distinciones y premios Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 20 / 36 Modelos de concurrencia CSP pasa a ser un Álgebra de Procesos (Journal of the ACM (31) 3, Julio de 1984) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 21 / 36 Modelos de concurrencia Visión gráfica de las operaciones entre procesos Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 22 / 36 Modelos de concurrencia Los cinco filósofos en TCSP Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 23 / 36 Modelos de concurrencia El libro sobre TCSP (Prentice-Hall, 1985) Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 24 / 36 Modelos de concurrencia El no determinismo es un operador explı́cito Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 25 / 36 Modelos de concurrencia Semántica denotacional de TCSP Se llama traza a toda secuencia de eventos que puede ser seguida por un proceso, y rechazo a un conjunto de eventos X ante el cual el proceso se puede bloquear. Hoare define: failures(P) = {(s, X ) | s ∈ traces(P), X ∈ refusals(P/s)} Una divergencia es una traza tras la cual el proceso se vuelve impredecible. CHAOS es el proceso más impredecible posible, pues diverge en la traza vacı́a. Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 26 / 36 Teorı́as Unificadoras de la Programación Índice 1 Biografı́a 2 La programación estructurada 3 Lenguajes concurrentes 4 Modelos de concurrencia 5 Teorı́as Unificadoras de la Programación 6 The Grand Challenge for Computing Research 7 Distinciones y premios Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 27 / 36 Teorı́as Unificadoras de la Programación ¿Qué es una teorı́a unificadora? • Las ciencias evolucionan desarrollando teorı́as especı́ficas para explicar una cierta clase de fenómenos: • Por ejemplo, en Fı́sica: mecánica, termodinámica, electromagnetismo, óptica, radiactividad, . . . • En Matemáticas se definieron varias clases de números con diferentes propiedades: naturales, enteros, racionales, reales, complejos, . . . • Cuando una ciencia madura, elabora una teorı́a unificadora que generaliza teorı́as previas, y que engloba como casos particulares muchas de las teorı́as precedentes: • La Mecánica Cuántica subsume todas las citadas excepto la mecánica (es decir, no explica la atracción gravitatoria) • El Álgebra generaliza las propiedades de los números y define estructuras genéricas (grupo, anillo, cuerpo, . . . ) aplicables también a nuevas clases de objetos • Mejor aún, una teorı́a unificadora predice fenómenos todavı́a no observados: e.g. la curvatura de la luz en presencia de materia, el bosón de Higgs, . . . Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 28 / 36 Teorı́as Unificadoras de la Programación Teorı́as de la Programación • A lo largo de los años, se han desarrollado teorı́as especı́ficas para estudiar distintos aspectos de los lenguajes de programación y de los programas: Semántica Axiomática Útil para verificar programas Semántica Operacional Útil para comprender los aspectos dinámicos, y para diseñar máquinas abstractas y compiladores Semántica Denotacional Útil para clarificar el significado de los programas, validar compiladores, demostrar corrección de transformaciones . . . • También se han desarrollado una amplia variedad de paradigmas de programación y de modelos de cómputo: • Imperativo, funcional, lógico • Evaluación impaciente, perezosa • Orientación a objetos, herencia • Concurrencia, paralelismo, distribución • Cada uno con sus técnicas especı́ficas de razonamiento y demostración de corrección: técnica pre/post, especificaciones algebraicas, invariantes concurrentes, lógica temporal, validación de modelos, . . . Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 29 / 36 Teorı́as Unificadoras de la Programación Una Teorı́a Unificadora de la Programación • Según Tony Hoare, el momento es adecuado para unificar muchas de esas teorı́as y técnicas. Desde hace 20 años, dedica esfuerzos a ello • Beneficios esperados: • • • • • • Mejor comprensión de los programas • Pasar fácilmente de un modelo a otro para razonar sobre aquellos • Desarrollo de herramientas integradas de construcción y verificación Numerosas publicaciones a partir de 1994, y un libro con He Jifeng en 1998 (Unifying Theories of Programming, Prentice Hall 1998) La base matemática de la misma son las relaciones y la lógica de predicados Aplicable tanto a programas secuenciales como concurrentes En ese marco define operadores básicos de composición de subsistemas • Composición secuencial, condicional, recursión, . . . • Composición paralela, elección no determinista, . . . que son comunes a varios paradigmas Por ejemplo, su noción de implementación correcta es extremadamente simple: I ⇒ S, donde el predicado I describe la implementación y el S la especificación Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 30 / 36 The Grand Challenge for Computing Research Índice 1 Biografı́a 2 La programación estructurada 3 Lenguajes concurrentes 4 Modelos de concurrencia 5 Teorı́as Unificadoras de la Programación 6 The Grand Challenge for Computing Research 7 Distinciones y premios Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 31 / 36 The Grand Challenge for Computing Research El Compilador Verificador • En 2003, Tony Hoare lanzó una iniciativa de largo recorrido a la comunidad cientı́fica internacional: la consecución de un compilador capaz de verificar la corrección de los programas que compila. • Consciente de la dificultad del empeño, escribió una serie de artı́culos justificando la necesidad de tal iniciativa: • Comparación con iniciativas similares en otras ramas de la ciencia: secuenciar el genoma humano, demostrar el último teorema de Fermat, encontrar el bosón de Higgs, . . . • Establece las caracterı́sticas que un desafı́o de esta naturaleza ha de tener: investigación fundamental, comprensible por el gran público, de efectos revolucionarios, factible, útil, etc. • Establece la duracı́on del proyecto: 15-20 años, con cinco previos de preparación • . . . y el esfuerzo: al menos 1000 personas-año en total Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 32 / 36 The Grand Challenge for Computing Research Las tecnologı́as • Considera que el momento es el adecuado, dado el tremendo desarrollo de muchas de las tecnologı́as necesarias: 1 2 3 4 5 6 Análisis estáticos basados en interpretación abstracta o en sistemas de tipos Tecnologı́as de validación de modelos (Model Checking) Resolutores de restricciones (Constraint Solvers) Resolutores SAT y SMT (SAT Modulo Theories) Demostradores de teoremas (Proof Assistants) Multiplicación de la potencia de cálculo y de memoria de los ordenadores • Sus teorı́as unificadoras también deberı́an jugar un papel relevante • La propuesta incluye la necesidad imperiosa de que los programadores utilicen asertos para instrumentar los programas: • Elemento de testing, incluyendo pruebas de regresión • Posibilitan la generación y ejecución automáticas de casos de prueba • Elemento de documentación • Elemento que hará posible la verificación en su caso por el compilador Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 33 / 36 The Grand Challenge for Computing Research The Verified Software Initiative • Lanzada oficialmente en 2007 con una duración prevista de 15 años. Objetivos: 1 2 3 Desarrollar la teorı́a necesaria Desarrollar un conjunto de herramientas asociadas a la teorı́a Construir un repositorio internacional de software formalmente verificado • Se prevé la participación internacional de grupos de investigación, empresas desarrolladoras de herramientas y empresas desarrolladoras de software • Patrocinio del IFIP: WG 1.9/2.14 • Cinco conferencias internacionales VSTTE (Verified Software: Theories, Tools and Experiments) a partir de 2005. La quinta, el 17 de Mayo de 2013 en Atherton, EE.UU. • El Comité Director lo forman: Tony Hoare, Andrew Ireland, Jay Misra, Natarajan Shankar y Jim Woodcock Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 34 / 36 Distinciones y premios Índice 1 Biografı́a 2 La programación estructurada 3 Lenguajes concurrentes 4 Modelos de concurrencia 5 Teorı́as Unificadoras de la Programación 6 The Grand Challenge for Computing Research 7 Distinciones y premios Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 35 / 36 Distinciones y premios Distinciones y premios • ACM Programming Systems and Languages Award, 1973 • Distinguished Fellow of British Computer Society, 1978 • Premio Turing, 1980, equiparable al Premio Nobel de otras disciplinas • AFIP Harry Goode Memorial Award, 1981 • Miembro electo de la Royal Society, 1982 • IEE Faraday Medal, 1985 • IEE Computer Pioneer Award, 1991 • Kyoto Prize for Information Science, 2000 • Knight Batchelor, 2000 (tı́tulo de Sir) • ACM SIGPLAN Distinguished Achievement Award, 2011 • IEEE John von Neumann Medal, 2011 • Diez Doctorados Honoris Causa en seis paı́ses distintos Ricardo Peña (UCM) La obra cientı́fica de Tony Hoare F. Informática, 23 Abril 2013 36 / 36