Le cours d'informatique de l'Institut Pasteur. Copyryght Laurent Bloch 1999
1 .Les fondations de l'informatique
1.1 Calcul automatique
1.2 Modèle de l'ordinateur
1.3 Information
1.4 Algorithme
1.5 Programme
1.6 Langage
1.7 Équivalence turingienne
2. Premiers éléments de Scheme
2.1 Notions élémentaires
2.2 Expressions simples
2.2.1 Nombres
2.2.2 Caractères et chaînes de caractères
2.2.3 Booléens
2.2.4 Identificateurs et symboles
2.2.5 Commentaires
2.3 Expressions composées
2.3.1 Combinaisons
2.3.2 Listes
2.4 Nommer, remémorer, définir : variable
2.4.1 Notions de variable et de liaison
2.4.2 Définition, environnement
2.5 Créer des procédures avec define
2.5.1 Forme d'une définition de procédure
2.5.2 Modèle d'évaluation par substitution
2.6 Prédicats et alternative
2.6.1 Usage des prédicats
2.6.2 Une conditionnelle
2.7 Citation
2.8 Communiquer avec l'extérieur
2.9 Enchaîner des actions
2.10 let, let*
2.11 Programmation interactive
2.12 Procédure, arguments, variables
3. Créer, manipuler des programmes
3.1 Chargement de programmes depuis un fichier
3.1.1 La procédure load
3.1.2 Exemple d'usage de load
3.1.3 Les limites des avantages de load
3.2 Compilation de programmes Scheme
3.2.1 Position de la question
3.2.2 Présentation du compilateur Bigloo
3.2.3 Compiler un programme avec Bigloo
4. Formes et types
4.1 Une notation grammaticale
4.2 Des expressions aux données : notion de type
4.2.1 Typage et justesse des programmes
4.2.2 Définitions du type de données
4.2.3 Types de données scalaires en Scheme : nombres
4.2.4 Types scalaires en Scheme, suite : booléens
4.2.5 Types scalaires, encore : symboles
4.2.6 Caractères
4.2.7 Chaînes de caractères
5. Processus de calcul
5.1 Notion d'évaluation récursive
5.2 Variables libres ou liées, variables globales
5.3 Construction de procédures
5.3.1 Définition de procédure récursive
5.3.2 Mécanisme effectif de la récursion
5.3.3 Procédures itératives
5.4 Traitement des erreurs, notion d'exception
5.4.1 Les erreurs existent
5.4.2 Exceptions
6. Construire des données
6.1 Doublets
6.1.1 Définition et représentation
6.1.2 Utilisation des doublets, constructeurs, sélecteurs
6.2 Représentation et manipulation des listes
6.2.1 Description et représentation externe
6.2.2 Les listes sont des doublets
6.2.3 Manipulation de listes
6.2.4 Représentation interne des listes
6.3 Exemples d'opérations sur les listes
6.3.1 append
6.3.2 reverse
6.3.3 map
6.3.4 apply
6.4 Prédicats d'équivalence
6.4.1 eqv?
6.4.2 eq?
6.4.3 equal?
6.4.4 Comparaison de listes
6.5 Listes d'associations (a-listes)
6.6 Citation encore : quasiquote, virgule et arobas
7. Autres formes pour les procédures
7.1
7.1.1 -expression
7.1.2 Nommer une -expression
7.1.3 let et lambda
7.2 Portée, environnements, fermetures
7.2.1 Portée lexicale
7.2.2 Plus sur les environnements
7.2.3 Modèle d'évaluation avec environnement
7.2.4 eval
7.3 Combiner autrement des -expressions
7.3.1 Procédures comme valeurs
7.3.2 Exemple : tri
7.3.3 let nommé
7.3.4 Itération avec do
7.3.5 -expressions à plusieurs paramètres : Curry
8. États de mémoire
8.1 Vecteurs
8.1.1 Accéder aux données en temps constant
8.1.2 Le type vecteur en Scheme
8.2 Environnement et mémoire
8.2.1 Affectation
8.2.2 Encapsulation et passage de message
8.2.3 Sous l'environnement, la mémoire
8.2.4 Conseils de programmation
8.3 Chirurgie des listes
8.4 Un usage des vecteurs : annuaire électronique
8.4.1 Le problème et sa solution naïve
8.4.2 Des alternatives, mais avec leurs défauts
8.4.3 L'adressage dispersé
8.5 Gestion de la mémoire physique : GC et pile
8.5.1 Le glaneur de cellules
8.5.2 Notion d'adresse
8.5.3 Pile d'exécution
9. Quelques pas vers le monde réel
9.1 Entrées-sorties : notions générales
9.2 Traitement de fichier : préliminaires
9.2.1 La banque de séquences de protéines Swiss-Prot
9.2.2 Ouverture de fichier
9.2.3 Assurer l'intégrité des fichiers
9.3 Lire un fichier séquentiel
9.3.1 Lire des séquences
9.3.2 Lire des lignes
9.3.3 Test de fin de fichier
10. Construire des programmes modulaires
10.1 Position de la question
10.2 Notion de module
10.3 Les modules de Bigloo
10.3.1 Premier module : point d'entrée du programme
10.3.2 Module de lecture des séquences
10.3.3 Module utilitaire
10.3.4 Structure du programme
10.4 Construction d'un programme modulaire
10.4.1 Compilation de modules source vers fichiers objets
10.4.2 Édition de liens pour construire l'exécutable
10.5 make et Makefile
10.5.1 Un Makefile simple pour construire un programme
10.6 Conserver plusieurs versions d'un programme
10.6.1 RCS : usage pour un cas simple
10.7 CGI en Scheme
10.7.1 Le formulaire
10.7.2 Le programme CGI
10.7.3 Le Makefile
10.7.4 Ranger les fichiers
10.8 Annuaire associatif en CGI
11. Arithmétique de l'ordinateur
11.1 Types entiers
11.1.1 Principe de représentation
11.2 Types fractionnaires
11.2.1 Les « réels »
11.2.2 Principe de représentation
11.2.3 Exemple
Références
Index
Liste des figures
Table des matières
1 .Fondations
2. Premiers éléments de Scheme
3. Créer, manipuler des programmes
4. Formes et types
5. Processus de calcul
6. Construire des données
7. Autres formes pour les procédures
8. États de mémoire
9. Quelques pas vers le monde réel
10. Construire des programmes modulaires
11. Arithmétique de l'ordinateur