Menu1 Menu2 Menu3 Menu4 Menu5 Menu6

Tout d'abord, les généralités : qu'est-ce qu'un programme, un langage, un compilateur ?
Vous souhaitez écrire un programme informatique, par exemple un jeu de bataille corse, c'est-à-dire créer un fichier ou un ensemble de fichiers que d'autres personnes pourront par la suite utiliser. Comment faire ?
Commençons par revenir aux bases : qu'est-ce qu'un ordinateur ? Quel est le point commun entre ces énormes machines qu'on voyait dans les années 50, qui remplissaient des salles entières et que pratiquement seul un état pouvait financer et l'objet que vous utilisez actuellement, qui coûte « seulement » quelques centaines d'euros et qui tient sous votre bureau, voire dans votre sac ? Eh bien un ordinateur, c'est un ensemble de composants électroniques reliés à une source électrique. Disons que le strict minimum est :
- Un processeur, le centre vital de votre ordinateur qui effectue incessamment des calculs et contrôle les autres composants
- Un disque dur, le bidule qui sert à garder vos données même si vous éteignez votre ordinateur pendant deux ans (en fait, les premiers ordinateurs n'avaient pas de disque dur, ils se contentaient de rendre le résultat de leurs calculs que les ingénieurs notaient scrupuleusement)
- Un périphérique d'entrée, un objet comme un clavier ou une souris qui vous sert à donner des instructions à votre machine et sans lequel elle n'aurait pas plus d'utilité qu'un aquarium
- Un périphérique de sortie, par exemple un écran ou une imprimante, qui permet à votre machine de vous communiquer le résultat de ce que vous avez demandé
Voilà, c'est tout ! Oui, ça semble peu. Surtout qu'à part additionner des 0 et des 1, ce truc ne sait pas faire grand chose. On peut même dire qu'un ordinateur seul est complètement débile. Pour devenir un peu intéressant, il va avoir besoin qu'un humain lui dise quoi faire : c'est la programmation !
En fait j'éxagère. Disons que votre ordinateur sait faire des calculs grâce aux processeurs (éventuellement, il peut aussi donner l'heure), enregistrer et lire des données sur le disque dur ou tout autre système comme une disquette que vous arrriverez à connecter, comprendre si vous avez appuyé sur la touche A ou B de votre clavier et allumer tel ou tel pixel de votre écran en utilisant même des couleurs si vous avez dépassé 1975. Vous disposez donc d'instructions pour demander à l'ordinateur de faire tout cela (normalement, l'électronicien a du se charger de lui apprendre tout ça) et vous souhaitez en faire une bataille corse ! Avec mélange des jeux, intelligence artificielle, interface graphique et tout ! Le gros problème, c'est que ces instructions dont j'ai parlées sont compréhensibles par le truc en face de vous mais pas par un humain ! Et c'est pour ça qu'on a inventé les langages de programmation ! Le langage de programmation, c'est une langue qui va vous permettre de donner des instructions à l'ordinateur en utilisant des mots humains !
Mais là vient un nouveau problème : cette fois, c'est l'ordinateur qui ne comprend plus ! Je vous rappelle qu'il ne manipule que des 0 et des 1, alors vous imaginez bien qu'un mot il ne voit même pas ce que c'est. Dans ce dialogue de sourds, c'est le compilateur qui va nous aider ! Le compilateur, c'est ce qui va vous permettre de traduire votre programme informatique rédigé dans un langage que vous comprenez en une instruction que la machine doit comprendre. Par exemple, si vous utilisez Caml, vous allez dire à l'ordinateur « let a = 2;; » (je vous expliquerai plus tard ce que c'est) et le compilateur va faire de ces caractères un truc que vous ne comprenez pas mais qui a du sens pour l'autre. Du coup, écrire un programme informatique, ça consiste en deux étapes :
- Trouver une suite de phrases du genre « let a = 2;; » et qui doivent si on s'est bien débrouillé faire un truc à la fin
- Compiler ces phrases pour que l'ordinateur les comprenne à son tour.

Et concrètement ?
Là, ça se complique : vous allez devoir choisir un langage car il existe plusieurs ! Et on peut dire qu'on a l'embarras du choix : Caml (Categorical Abstract Machine Language) Light ou Objective, C, C++, Java, Javascript, Basic (Beginner's All-purpose Symbolic Instruction Code), Perl (Practical Extraction and Report Language), PHP (Personnal Home Page), ASP (Application Service Provider), ... Pourquoi tant de langages ? En général, ce n'est pas juste pour le plaisir ou l'appât du gain (bien qu'il y ait des exceptions, par exemple ASP est un langage équivalent de PHP mais payant au profit de Microsoft) mais ces langages ont des spécificités, tant dans leur fonctionnement que dans leur utilisation. Par exemple, les langages Caml et C sont très adaptés pour créer des programmes qui s'utiliseront par d'autres ordinateurs ; Basic est un langage avec assez peu de fonctionnalités, ce qui le rend adapté aux machines avec peu de mémoire et de puissance de calcul comme les calculatrices ; PHP et ASP sont principalement destinés à Internet, Javascript aussi (en tant que complément à HTML) ; quant à Java il répond aux même utilisations que C et Caml mais est plutôt utilisé sur Internet.
Bon vous n'avez pas besoin de retenir tout ça, je voulais juste vous montrer la diversité. Maintenant, pourquoi ai-je choisi de vous apprendre Caml plutôt qu'un autre ? N'y voyez aucune volonté d'affirmer une supériorité de ce langage sur les autres (d'ailleurs, je ne les connais pas tous !) mais c'est simplement que je le connais bien et que c'est le premier langage que j'ai appris moi-même. J'ai de plus souvent entendu qu'il est très bon pour la pédagogie du fait de sa syntaxe plus intuitive que d'autres. Enfin, il a l'avantage non négligeable d'être gratuit.

Alors comment on utilise Caml ?
D'abord il y a deux langages Caml : Caml Light et Objective Caml. Le premier est en fait une version plus simple du second mais qui permet du coup de faire moins de choses (par exemple, il se compile moins bien). Le second avantage d'Objective Caml est qu'il est encore régulièrement mis à jour contrairement à son ancêtre. C'est pourquoi j'ai choisi de vous apprendre Objective Caml (que je surnommerai maintenant OCaml comme tout le monde), de toute manière il n'est pas extrêmement plus compliqué que Light. Pour ceux qui connaissent Light (par exemple s'ils ont connu la première version de ce site !), j'ai concocté une page qui vous expliquera les principales modifications pour que vous l'utilisiez sans avoir à lire tout le cours.
Pour la petite histoire, Caml a été développé par l'INRIA (Institut National pour la Recherche en Informatique et en Automatique) à des fins de recherche et de pédagogie depuis 1985. Si vous souhaitez l'utiliser, vous allez d'abord devoir vous le procurer : je vous explique comment ici.

> Haut de la page