La obra científica de Tony Hoare Primer Dr. Honoris Causa

Anuncio
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
Descargar