Qu'est-ce qu'un programme ?


Alors voilà : on vous parle de programmation, alors que vous ne savez même pas ce qu'est un programme réellement? On va corriger celà tout de suite.

Alors qu'est-ce qu'on prépare aujourd'hui?

Mon professeur d'informatique à l'université a trouvé une comparaison que je vais me permettre de reprendre, car je la trouve plutôt pas mal. Nous allons assimiler un programme a une recette de cuisine.

Au départ, il y a les ingrédients, les pots qui contiennent les ingrédients, les ustensiles de cuisine, le four ou la poêle et le livre de recettes, dans lequel la démarche à suivre est exposée et expliquée. Nous allons faire une tarte, pour laquelle on commence par mettre en place tous les ingrédients, et qu'il suffit de mettre au four à la fin pour qu'elle soit finie. C'est en effet le processus qui se rapproche le plus de la programmation (certains autres plats nécessitent de rajouter des ingrédients pendant ou après la cuisson, mais ça fout tout mon exemple en l'air).

Pour faire cette tarte, on commence par préparer tous les ingrédients nécessaires. S'il faut, on les sort du pot dans lequel ils sont (et croyez-moi, certains pots sont d'une difficulté d'utilisation, c'est fou!). Ensuite, une fois qu'on a tous les ingrédients prêts sous la main, on commence à les préparer (éplucher les poires, pétrir la pâte...), selon les instructions de la recette. On les dispose sur le moule à tartes, et puis on met le tout au four. Une fois qu'il est resorti du four, notre dessert est prêt à être consommé par tous les invités.

Transmutation...

Et bien pour faire un programme, on fait plus ou moins la même chose (à part qu'on ne va pas travailler avec de la nourriture). Un ordinateur est un outil informatique, c'est à dire que sa principale fonction est de traiter des données (il ne sait d'ailleurs rien faire d'autre, quoique si vous le laissez allumé en permanence dans votre chambre, il puisse également vous servir de radiateur). On va donc considérer que les données sont nos ingrédients. Ces données peuvent être des nombres, des chaînes de caractères (du texte) et bien d'autres choses encore. D'abord, il faut les sortir de leur pots : on considèrera que les pots sont représentés par les fichiers, le clavier, le microphone ou n'importe quel autre engin qui puisse recevoir ou contenir des données dont nous avons besoin. Ensuite, on les prépare. Pour des sons, on voudra peut-être les filtrer, pour des entiers, on voudra peut-être savoir s'ils sont pairs ou impairs. Et avec quoi les prépare-t-on? Avec les opérations, bien sûr! Avec des opérations, des tests, des boucles, bref tous les ustensils que le langage de programmation met à notre disposition. Et tout ceci ne se fait pas au hasard : le chemin à suivre est clairement indiqué par l'algorithme qu'on a élaboré pour faire ce programme (nous reviendrons sur la notion d'algorithme plus loin. Pour l'instant, considérez qu'un algorithme est une liste d'étapes à suivre prédéfinie) que nous assimilerons à notre recette elle-même. Une fois que tout est prêt, on sauvegarde le tout dans des fichiers (le moule à tartes), et puis on compile ces fichiers (notre four est devenu un compilateur), étape pendant laquelle la tarte va devenir commestible (c'est à dire que notre programme va devenir utilisable).

Donc en gros...

Vous l'aurez compris, un programme c'est une suite définie à l'avance d'instructions contenues dans un ou plusieurs fichiers. Ces fichiers sont ensuite compilés (phase pendant laquelle vous saurez, en partie, si vous avez fait des erreurs dans votre programme) et ce n'est qu'alors que vous pouvez les exécuter et finir d'achever le boss final de Doom. Remarquez qu'une fois qu'un programme est compilé, il n'est plus modifiable. Si on veut apporter un changement, il faut revoir les fichiers contenant le code source (c'est-à-dire le programme que vous avez tapé) et recompiler.

Que ce passe-t-il donc lors de la compilation? Qui compile tous ces fichiers? Autant de questions auquelles nous répondrons dans notre prochain cours...


Voir aussi: La logique de la programmation