Télécharger le fichier

publicité
LA PROGRAMMATION INFORMATIQUE
LE PROCESSUS DE PROGRAMMATION
Combien de fois t’est-il arrivé/e de te frustrer parce que l’ordinateur ne faisait tout
simplement pas ce que tu voulais qu’il fasse? Est-ce comme lorsque tes parents te demandent
de nettoyer ta chambre et que tu ne le fais pas? Voyons si c’est le cas. Dans le cas du
nettoyage de ta chambre, les paroles échangées pendant la communication ont été comprises
par les deux parties, mais quelqu’un a refusé de le faire (on ne nommera pas qui!). Au cours
d’un échange avec l’ordinateur, le langage utilisé n’a pas eu l’effet désiré. Une des parties qui
« conversait » a utilisé des termes incompris de l’autre.
Le langage est donc important. Comment alors l’humain s’assure-t-il d’être compris par
l’ordinateur ?
LE LANGAGE MACHINE
0010100111010101100101011001!
As-tu saisi le sens de cette instruction? L’ordinateur, lui, n’aurait aucune difficulté à
comprendre. En fait, ce langage de 0 et de 1, la base du système binaire, est le seul qu’il
comprenne et qu’il maîtrise. Lorsqu’un programme informatique est sous la forme de
0 et de 1, on dit qu’il est en code machine.
Il n’est donc pas facile de communiquer directement avec un ordinateur. C’est pourquoi les
programmeurs ont mis au point des langages de programmation en vue de faciliter la
composition des instructions d’un logiciel. Ils se sont aussi entourés de processus de
programmation pour structurer leurs efforts.
LE PROCESSUS DE PROGRAMMATION EN INFORMATIQUE
Entre l’idée de la nécessité d’un programme informatique et de sa réalisation en un code
machine pour régir le comportement de l’ordinateur, le programmeur fait appel à une série de
processus qui l’aideront dans sa démarche.
L’illustration ci-dessous schématise bien cette séquence de processus. Le programmeur sera
ainsi progressivement conduit du langage humain au code source, pour finalement aboutir au
code machine.
Langage humain : Mets la variable « somme » égale à trois.
Code source :
Code machine : …001001010010101011001010101010011011110100101010…
LA COMPILATION ET L’INTERPRÉTATION
Les langages de programmation ont évolué pour ressembler beaucoup plus au langage humain
qu’au langage machine en 0 et en 1.
Un processus doit donc exister pour que les instructions que tu écriras en Visual Basic soient
traduites en langage machine que l’ordinateur pourra comprendre et exécuter. En d’autres
mots, il faut un processus pour passer du code source en Visual Basic, par exemple, au code
objet en 0 et en 1 (le code objet est équivalent au code machine). En fait, cette traduction
s’accomplit par l’une ou l’autre des deux méthodes suivantes : la compilation ou
l’interprétation.
C’est en fait le choix du langage de haut niveau qui détermine la méthode de traduction
utilisée. Certains langages sont compilés (p. ex., Turbo Pascal, C) alors que d’autres sont des
langages interprétés (p. ex., Visual Basic). Il y en a même, comme Java, qui font appel à une
combinaison des deux méthodes. Par définition, les compilateurs et les interpréteurs sont euxmêmes des programmes! Eh oui! Ce sont des logiciels composés spécifiquement pour prendre
les instructions que tu as composées dans un langage de programmation et les convertir sous
la forme de codes compris par la machine.
Une analogie pour comprendre compilation et interprétation
Comment distinguer compilateur et interpréteur? C’est ce que tu découvriras en répondant à la
question suivante : S’il est facile pour deux francophones de se parler, comment s’y prendre
lorsqu’un francophone communique avec un anglophone? Voici les deux solutions qui
t’aideront à départager la différence entre compilation et interprétation.
Solution interprétée.
Le francophone fait appel à un interpréteur qui traduit du français à l’anglais au fur et à
mesure. Le francophone prononce d’abord une phrase en français. L’interpréteur écoute la
phrase, la reformule dans l’autre langue et la dicte en anglais à l’anglophone. Ce processus est
répété pour chacune des phrases. La communication entre le francophone et l’anglophone a
beau commencer sans délai, l’interprétation est quand même un processus lent; la
communication est continuellement entrecoupée par les efforts de traduction.
Solution compilée.
Le francophone consigne tout ce qu’il doit dire par écrit dans un document. Ce document en
français
est
ensuite
entièrement
traduit
en
anglais.
Le
résultat
final
est
un
document compilé en anglais qui implique les faits suivants. La compilation exige la
traduction complète du document avant sa prise en charge par l’anglophone, ce qui entraîne
un délai important avant le début du processus réel de communication. L’avantage ne se
révèle qu’une fois que le document final est entre les mains de l’anglophone; il peut être lu à
n’importe quel moment opportun et à la vitesse désirée, sans pause aucune.
De tels scénarios sont analogues à ceux pouvant se produire dans le domaine de
l’informatique. Il suffit tout simplement de voir que le français est similaire au code source,
l’anglais, au code machine et que l’anglophone est l’ordinateur.
Le compilateur
Le compilateur traduit la totalité du programme source en code machine. D’un seul coup, le
compilateur compile entièrement le code source et génère un fichier exécutable composé
de code machine. Ce fichier exécutable s’enregistre sur un support de stockage (disque dur,
cédérom, etc.). Cela signifie donc que :

le programme ne peut être exécuté qu’une fois le code entièrement traduit ;

toute modification apportée au code source nécessite une recompilation ;
L’illustration ci-dessous donne une bonne idée de l’application du processus de compilation.
L’interpréteur
L’interpréteur, quant à lui, fournit les outils nécessaires à ce qu’un programme écrit en
langage source puisse être compris et exécuté par l’UCT, ligne de code par ligne de code. Dès
que l’interpréteur tombe sur une instruction, il la traduit et demande immédiatement à l’UCT
de l’exécuter avant de passer à l’instruction suivante. Ce processus est répété jusqu’à ce que le
programme ait terminé. Cela signifie donc que :

l’interpréteur est un programme qui doit être chargé en mémoire en même temps que
le programme source qu’il doit interpréter ;

les instructions du programme source sont ramassées et exécutées une à la fois ;

le code interprété n’est pas conservé. Si un tel programme doit être réexécuté, il doit
passer de nouveau par l’interpréteur ;
L’illustration ci-dessous donne une bonne idée de l’application du processus d’interprétation.
En résumé, tout langage de haut niveau peut-être soit compilé ou interprété. C’est le type
d’application qui se porte juge du choix. Voici des facteurs à considérer :

L’interpréteur doit être chargé en mémoire au cours de l’exécution d’un programme
interprété; l’espace mémoire disponible à l’exécution de ce dernier est donc réduit.
Dans le cas du compilateur, il n’est chargé en mémoire que pendant l’étape de
compilation; seul le code machine d’un programme compilé réside en mémoire au
cours de l’exécution.

Dès qu’un fichier exécutable est accessible, il peut être exécuté aussi souvent que
désiré sans devoir utiliser le compilateur. Cependant, avec un programme en langage
interprété, il faut utiliser l’interpréteur chaque fois que l’on désire exécuter un tel
programme.

Les programmes en code machine ont une rapidité d’exécution supérieure à celle des
programmes interprétés.

Il est plus facile et plus rapide de modifier le code d’un programme interprété que
celui d’un langage compilé. Les langages interprétés ont donc l’avantage de réduire le
temps de développement.
Selon toi, dans un environnement de production où la vitesse d’exécution du programme est
de mise, lequel des programmes, compilé ou interprété, aura l’avantage? Pourquoi? Dans un
environnement de production où la vitesse de développement est de mise ? Pourquoi ?
Ce pourrait être de bonne question d’examen.
Téléchargement