4TABLE DES MATI `
ERES
3.5 Typessomme............................. 51
3.6 Types de donn´ees dynamiques . . . . . . . . . . . . . . . . . . . . 54
3.6.1 Listes ............................. 54
3.6.2 Les listes lin´eaires . . . . . . . . . . . . . . . . . . . . . . 57
3.6.3 Application aux tables de hachage . . . . . . . . . . . . . 57
3.6.4 Listes et partage . . . . . . . . . . . . . . . . . . . . . . . 59
3.7 Le ramasse-miette, ou GC . . . . . . . . . . . . . . . . . . . . . . 62
4 Programmation orient´ee objet, en JAVA 65
4.1 Statique versus dynamique . . . . . . . . . . . . . . . . . . . . . 65
4.2 Types somme, revisit´es . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3 H´eritage................................ 70
4.4 Exceptions .............................. 73
4.5 Interfaces ............................... 75
4.6 H´eritage et typage . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.7 Classes abstraites . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.8 Paquetages .............................. 77
4.9 Collections .............................. 78
4.10 Les objets en (O)Caml . . . . . . . . . . . . . . . . . . . . . . . . 78
5 R´ecursivit´e, calculabilit´e et complexit´e 81
5.1 La r´ecursivit´e dans les langages de programmation . . . . . . . . 81
5.2 Piled’appel.............................. 82
5.2.1 R´ecursion et it´eration . . . . . . . . . . . . . . . . . . . . 82
5.2.2 D´er´ecursivation . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3 R´ecurrence structurelle . . . . . . . . . . . . . . . . . . . . . . . . 87
5.4 Partage en m´emoire et r´ecursivit´e . . . . . . . . . . . . . . . . . . 89
5.5 Les fonctions r´ecursives primitives . . . . . . . . . . . . . . . . . 90
5.6 Fonctions r´ecursives partielles . . . . . . . . . . . . . . . . . . . . 92
5.7 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.8 Quelques ´el´ements de complexit´e . . . . . . . . . . . . . . . . . . 94
6 S´emantique d´enotationnelle 101
6.1 S´emantique ´el´ementaire . . . . . . . . . . . . . . . . . . . . . . . 101
6.2 Probl`emes de points fixes . . . . . . . . . . . . . . . . . . . . . . 104
6.3 S´emantique de la boucle while ................... 107
6.4 S´emantique des fonctions r´ecursives . . . . . . . . . . . . . . . . . 109
6.5 Continuit´e et calculabilit´e . . . . . . . . . . . . . . . . . . . . . . 110
7 Logique, mod`eles et preuve 113
7.1 Syntaxe ................................ 113
7.2 S´emantique .............................. 114
7.3 D´ecidabilit´e des formules logiques et probl`eme de l’arrˆet . . . . . 116
7.4 Pour aller plus loin... . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.5 Un peu de th´eorie de la d´emonstration . . . . . . . . . . . . . . . 117