Table des matières
Chapitre 1 Graphes
1.1 Définitions
1.2 Matrices d'adjacence
1.3 Fermeture transitive
1.4 Listes de successeurs
1.5 Graphes et arborescences
1.6 Arborescences de Trémaux
1.7 Arborescences des plus courts chemins.
1.8 Parcours de graphes
1.9 Graphes acycliques
1.10 Connexité dans un graphe non-orienté
1.11 Biconnexité dans un graphe non-orienté
1.12 Composantes fortement connexes
1.13 Programmes en OCaml
Chapitre 2 Analyse Syntaxique
2.1 Caractères
2.2 Chaînes de caractères
2.3 Alphabets, mots, langages
2.4 Expressions régulières
2.5 Analyse lexicale
2.6 Arbres de syntaxe abstraite
2.7 Grammaires
2.8 Exemples de Grammaires
2.9 Analyse syntaxique
2.10 Analyse descendante récursive
2.11 Autres méthodes d'analyse syntaxique
2.12 Programmes sur les arbres de syntaxe abstraite
2.13 Programmes en OCaml
Chapitre 3 Modularité et Objets
3.1 Un exemple: les files de caractères
3.2 Interfaces et modules
3.3 Structure de l'espace des noms, paquetages
3.4 Compilation séparée et librairies
3.5 Dépendances entre modules
3.6 Un exemple de module en C
3.7 Modules en OCaml
3.8 Programmation par objets
3.9 Hiérarchie des classes et sous-typage
3.10 Notation objet et liaison tardive
3.11 Droits d'accès, polymorphisme, surcharge et héritage
3.12 Classes abstraites et types disjonctifs
Chapitre 4 Exploration
4.1 Algorithmes gloutons
4.2 Exploration arborescente
4.3 Programmation dynamique
4.4 Programmes en OCaml
Chapitre 5 Correction
5.1 Correction de programmes itératifs scalaires
5.2 Correction de programmes itératifs avec des tableaux
5.3 Correction partielle et logique de Hoare
5.4 Implémentation des assertions
5.5 Fonctions et récursion
5.6 Terminaison et correction totale
Chapitre 6 Concurrence
6.1 Processus
6.2 Terminaison
6.3 Variables partagées
6.4 Sections critiques
6.5 Conditions
6.6 Etats d'un processus et ordonnancement
6.7 Les lecteurs et les écrivains
6.8 Implémentation de la synchronisation
6.9 Sémaphores
6.10 Producteur -- Consommateur
Chapitre 7 Machines finies et infinies
7.1 Exemples de machines finies
7.2 Automate fini
7.3 Automates finis non-déterministes
7.4 Les trois théorèmes fondamentaux
7.5 Machines de Turing
7.6 Autres définitions de machines de Turing
7.7 Thèse de Church
7.8 Indécidabilité de l'arrêt
7.9 Applications des automates finis à la concurrence
Chapitre 8 Graphique
8.1 Graphique ``bitmap``
8.2 Entrées graphiques
8.3 La bibliothèque AWT
8.4 Un exemple d'appliquette
8.5 Enveloppe convexe
Annexe A Java
A.1 Un exemple simple
A.2 Quelques éléments de Java
A.3 Syntaxe BNF de Java
Annexe B Objective Caml
B.1 Un exemple simple
B.2 Quelques éléments de Caml
B.3 Syntaxe BNF de Caml
Bibliographie
Table des figures
Index