Pourquoi?
Pourquoi un cours de programmation?
-
Pour revoir les paradigmes de programmation connus
(programmation impérative, dans une moindre mesure programmation
fonctionnelle), voir les exceptions, préparer l'étude des autres
paradigmes de programmation (programmation objets, modules,
distribuée, etc.)
- Comprendre comment ça marche: la sémantique des langages de
programmation.
- Ce sera effectivement la seule véritable occasion de programmer
en licence.
Pourquoi étudier la sémantique des langages?
-
Pour comprendre exactement ce que fait un langage, pouvoir
prévoir la réponse, et ce, quel que soit le compilateur.
- C'est un moyen de vérification pour être sûr que le programme
que l'on a écrit va bien faire ce que l'on attend de lui.
- Il y a d'ailleurs un marché pour les langages de programation à
sémantique sûre notamment dans les transports (constructeurs de
trains, métro, RATP, Airbus A340, etc.)
Pourquoi utiliser un nouveau langage?
Pas de langage commun connu de tous pour l'instant.
Pourquoi ne pas utiliser C?
-
Ne sera vraiment connu de tous qu'à l'issue du semestre et non
au début
- Langage à la sémantique mal définie, on apprend ce qu'est la
sémantique avec un langage à la sémantique bien définie.
Pourquoi utiliser Caml?
-
Langage à la sémantique bien définie
- Déjà rencontré en option de DEUG (Objective Caml) pour certains,
sera à nouveau utilisé en maîtrise
- Implémentation Caml Light gratuite, disponible sous Unix,
Windows*, MacOS, etc., distribution par l'Inria, récupérable dans
les salles de TP
- Puissant langage d'usage général: fonctionnel + impératif +
modules
- Richesse des constructions (types sommes, filtrage, ordre
supérieurm polymorphisme, etc.)
- Deux modes d'utilisation: mode interactif, mode différé
- Compilation séparée, produit du byte-code, qui est interprèté
- Performances raisonnables
- Objective Caml qui inclut Caml Light est très puissant (modules,
objets, code natif, etc.)