L’utilisation de ces p´
eriph´
eriques est int´
egr´
ee au sein d’un logiciel qui assure la coordination des actions :
si on clique ici, c¸a affiche c¸a,. . . En gros, un logiciel comporte deux types de tˆ
aches : des algorithmes (tˆ
aches
d´
efinies `
a l’avance, comme un calcul) et des interfaces utilisateurs (r´
eactions `
a des actions de l’utilisateur).
L’interaction se faisant `
a travers des p´
eriph´
eriques de plus en plus d´
evelopp´
es et donc compliqu´
es, de
nombreuses tˆ
aches fastidieuses et r´
ep´
etitives apparaissent ; on les code alors une fois pour toute sous forme
de librairies. Par exemple, avec l’apparition des ´
ecrans, de nouvelles possibilit´
es sont explor´
ees :
–´
Ecriture de texte
– Trac´
e de formes g´
eom´
etriques (carr´
es, lignes, cercles,. . . )
– Affichage d’images
– Dessins en 3D
– . . .
Une librairie rassemble des capacit´
es qu’on peut utiliser via un petit ensemble de commandes appel´
ees API
(Application Programming Interface). Par exemple une librairie d’´
ecriture de texte `
a l’´
ecran va sp´
ecifier
quelle commande utiliser pour ´
ecrire un texte, quelle commande pour changer la couleur, . . .
Un programme utilise alors uniquement des commandes de librairies pour g´
erer les fonctions complexes
de l’ordinateur. Souvent les librairies utilisent d’autres librairies : on parle alors de couches logicielles
(tableau 1)
Couche logicielle Fonction
Programme R´
ealise les actions sp´
ecifiques `
a l’application
Librairie GTK G`
ere les objets graphiques (widgets)
Gestionnaire de fenˆ
etres G`
ere la position, la taille, la visibilit´
e, . . . des fenˆ
etres
Serveur X11 G`
ere l’affichage `
a l’´
ecran
Noyau G`
ere les fonctions de base
TABLE 1 – Sch´
ema simplifi´
e des couches logicielles d’une application graphique simple sous Linux
Au cours du temps, certaines librairies s’imposent comme des standards ; elle sont alors parfois directe-
ment int´
egr´
ees dans les cartes logiques des ordinateurs. Par exemple, de plus en plus de fonctions graphiques
comme la 3D, l’alpha-blending,. . . sont impl´
ement´
ees dans les cartes graphiques.
2 La programmation d’un ordinateur
Qu’apporte un langage de programmation ?
2.1 La gestion de la m´
emoire
Un processeur ne connaˆ
ıt que le langage machine sous forme de codes compliqu´
es. Une programmation
directe en langage machine est possible grˆ
ace `
a l’assembleur. Il permet d’´
ecrire les instruction machine
sous une forme `
a peu pr`
es compr´
ehensible (pour un angliciste). C’est le plus simple des langages de pro-
grammation, qui g`
ere l’organisation de la m´
emoire. On peut lui dire ”r´
eserve moi 2 octets de m´
emoire sous
le nom index”, et il se d´
ebrouillera pour le faire.
La machine manipule des donn´
ees sans rien comprendre `
a ce qu’elle fait. L’assembleur n’en fait pas plus.
Les donn´
ees n’ont pas de type. Par exemple, dans un emplacement de la m´
emoire se trouvera la chaˆ
ıne de
donn´
ees 01000101 10001110 ; qu’est-ce que c¸a veut dire ? Il y a plein de fac¸on de lire c¸a, tout d´
epend le
sens qu’on y a mis quand on l’a ´
ecrit.
Un langage de programmation va permettre de g´
erer les types de donn´
ees. Dans un langage typ´
e comme
C, JAVA, . . . , on d´
eclare une variable en indiquant de quel type elle sera ; dans un langage non typ´
e (ou
typ´
e dynamiquement) comme Python, Ruby, Javascript,. . . , la valeur qu’on donne `
a une variable permet de
connaˆ
ıtre son type.
Chaque adresse de la m´
emoire peut contenir des informations. Le d´
eclaration de variables permet de
savoir quel type d’information y sera stock´
e. Un langage de programmation doit aussi permettre de lib´
erer
2