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