Programmes et algorithmes

Nous l’avons vu, un programme est une suite d’instructions écrites dans le but de réaliser un traitement.

Un programme a des points d’entrée et de sortie de l’information, et les instructions sont rédigées dans un certain ordre avec certaines conditions pour pour voir effectuer le traitement. Ces instructions peuvent être très simples ou alors très complexes.

Pour écrire un programme, on utilise un moyen de description que l’on appelle l’algorithme. Un algorithme c’est une suite d’instructions reliées entre elles avec des conditions, décrivant le comportement du programme dans toutes les situations, et l’ensemble des sorties possibles pour toutes les entrées possibles. Ça implique forcément que le nombre d’entrées différentes que peut traiter un programme est un nombre fini. Il faut que tous les cas d’entrée soient décris dans le programme comme soit des cas d’échec (sortie “poubelle”), soit des cas qui renvoient de l’information transformée sur les sorties.

Écrire un algorithme est similaire à la rédaction d’une solution à un problème mathématique. Une fois qu’on a la solution pour transformer les données, il faut la décrire, en reprenant les données de départ, et en les transformant pour obtenir les données d’arrivée.

algorigramme-01.png

Un algorithme simple avec deux entrées numériques et une sortie.

L’image ci-dessus est un algorigramme, c’est un schéma décrivant un algorithme simple, comme il pourrait s’exécuter sur un ordinateur. Ce programme ne fait pas grand chose d’utile, et il est très simple, mais c’est un exemple.

Langages et compilation

Comment transformer un algorithme en instructions compréhensibles par un ordinateur ? Il faut savoir que le processeur d’un ordinateur ne sait exécuter que des opérations simples (lire de la mémoire, réaliser des calculs avec la mémoire, etc). Ces instructions sont des codes binaires qui sont envoyés au processeur. Bon, sauf que les informaticiens n’écrivent pas directement de codes binaires pour le processeur.

Pour écrire un programme, les informaticiens utilisent ce que l’on appelle un langage. Un langage informatique est un ensemble de mots (écrits avec des vraies lettres) que l’on assemble pour décrire l’algorithme. Voici un petit exemple de notre algorithme dans un langage informatique qui pourrait exister :

DÉBUT
Si entree1 = 0 alors sortie1 = 0, FIN
Si entree1 < 0 alors val1= entree1 - 2
Si entree1 > 0 alors val1 = entree1 + 2
val2 = entree2 + 3
val3 = val1 + val2
sortie1 = val3
FIN

Bien évidemment, un processeur ne comprend pas le français, donc il ne comprend pas ce que veut dire “Si entree1 = 0”. Pour transformer ce texte en programme, il faut réaliser une traduction que l’on appelle la compilation.

La compilation est le processus par lequel un texte écrit dans un langage informatique devient un programme exécutable par un ordinateur. Chaque “phrase” est traduite en code compréhensible par le processeur, et le programme peut se lancer. Ce processus peut paraître simple, mais il y là aussi des aspects fondamentaux et formels pour que ce processus puisse avoir lieu (syntaxe, optimisations, etc).

C’est grâce à de tels outils que l’on arrive à écrire sans trop d’efforts des programmes efficaces dans la majorité des cas.

En conclusion

Nous avons vu que les programmes se modélisent sous forme d’algorithme et s’écrivent ensuite dans un langage compréhensible pour être ensuite traduits pour être exécutés par l’ordinateur.

La partie suivante … Je n’ai pas encore décidé quoi mettre dedans, et pourtant il y a encore plein de choses à dire !

Restez attentifs (abonnez-vous au blog), ou proposez moi de nouveaux sujets, les articles suivants n’en seront que plus intéressants. :)

Voir l’ensemble des articles sur ce sujet : Personne ne comprend l’informatique.

Voir le lexique.