Module Caml (IF3.01)   A. ED-DBALI

Ci-dessous les pages web et ressources pour le module Caml (IF3.01). Vous y trouverez un fond documentaire ainsi que des annonces de toutes sortes (dates d'examens, reports de cours, etc). Bonne lecture !


  Introduction   (mise-à-jour : 12 septembre 2003)     

Les langages de programmation sont en général de curieux hybrides qui combinent des aspects hérités de la structure des ordinateurs et des aspects plus abstraits qui les rattachent à la tradition mathématique. Parmis les premiers aspects, on peut ranger l'affectation (on affecte une valeur à une variable : notion de contenant et de contenu) et le séquencement d'instructions (exécution successives d'instructions). De telles constructions sont appelées impératives car elles correspondent à la vision d'un programme comme une suite d'ordres donnés à la machine (on dit, dans les moindres détails, comment faire les choses). C'est le cas des langages comme Pascal, Fortran, C, C++ ou JAVA. Parmis les seconds aspects, on trouve par exemple les notions d'expression et de fonction que l'on qualifie de déclaratives: elles ont un sens indépendamment de toute exécution ultérieure sur machine (on déclare simplement comment sont les choses). C'est le cas des langages comme Lisp, Scheme (une vision moderne de Lisp) ou Caml. Ces langages sont dits fonctionnels. Il existe une autre catégorie de langages déclaratifs : les langages logiques qui sont eux à base de prédicats et des constructions logiques. Le plus célèbre de ces langages est Prolog. La déclarativité des langages a toutefois ses limites. Nous serons parfois contraints d'avoir recours à des écritures impératives lorsque cela s'avère nécessaire (c'est la cas, par exemple, de traitements où les ordres d'entrées/sorties sont indispensables).

Les concepts abordés dans ce cours seront illustrés par le langage Objective Caml (ou ocaml). On y parlera des opérations et types élémentaires, fonctions et récursivité, typage implicite, structures de données et quelques aspects impératifs comme le traitement des exceptions, le séquencement et les entrées/sorties.


  Planning et annonces   (mise-à-jour : 12 septembre 2003)     

  Annonces

  Planning
Ce planning est donné à titre indicatif. Il peut évoluer selon l'état d'avancement du cours.

Date Sujet
8/9 Introduction à la programmation fonctionnelle et à Caml, disponibilité et installation du système, mode interactif, expressions, types de base.
15/9 Noyau fonctionnel d'Objective CAML : produit cartésien, expressions fonctionnelles et fonctions.
22/9 Noyau fonctionnel d'Objective CAML : filtrage de motifs, fonctions infixes, fonctions d'ordre supérieur et fonctions récursives.
29/9 Noyau fonctionnel d'Objective CAML : fonctions récursives et fonctions d'ordre supérieur.
6/10 Noyau fonctionnel d'Objective CAML : polymorphisme.
13/10 Cours annulé.
20/10 Structures de données : définition de types (produit nommé, somme).
Date à définir Examen partiel de 1h30. Documents permis.
3/11 Structures de données : définition des types récursifs, les listes.
10/11 Manipulation des listes.
17/11 Structure de données arbres.
24/11 Aspects impératifs du langage Caml (exceptions, séquences, entrées/sorties).
1/12 Révision : correction d'examens passés
19 décembre 2003 à 8h00 Examen final. Durée 2 heures. Documents permis. Merci de venir au moins 15mn plutot.

haut de page

  Ressources pour ce cours (mise-à-jour : 12 septembre 2003)     

  Quelques références bibliographiques :

  • Titre : Développement d'applications avec Objective Caml (visible en ligne)
    Auteurs : Emmanuel CHAILLOUX - Pascal MANOURY - Bruno PAGANO
    Editeur : O'Reilly
    Opinion : Un livre très bien fait. Arrive avec un CDROM et des exercices corrigés. C'est le livre de référence pour ce cours ! Nous nous contenterons d'aborder le chapitre 2 (programmation fonctionnelle) et quelques point du chapitre 3 (programmation impérative).

  • D'autres livres sont au bout de ce lien : caml.inria.fr/books-fra.html.
  • Le manuel de référence d'Objective Caml (en anglais) ICI.

  Ressourses électroniques :

  • Le site officiel du langage Caml est : caml.inria.fr. On y trouve toutes sortes d'informations utiles sur le langage comme par exemple l'endroit où télécharger la dernière version de Ocaml (pour linux ou windows) ainsi que le manuel de référence du langage.
haut de page

Vous êtes priés de me rapporter, par
mail, les éventuelles erreurs ou omissions constatées dans les différents documents et lien offerts dans cette page. Merci.