Vous êtes sur la page 1sur 11

Le langage C

Définitions
1. Notion d’algorithme
• Le mot algorithme est issu de la déformation du nom d’un savant perse du
IXème siècle appelé Al Khuwarizmi4. Donc, il n’y a aucun rapport avec le mot
rythme, ce qui explique l’absence de y dans le mot algorithme.
• Algorithme : séquence finie d’actions permettant de résoudre un problème donné.
La notion d’algorithmique est directement dérivée du concept d’algorithme :
• Algorithmique : ensemble des méthodes permettant de définir et/ou d’étudier des
algorithmes.
1.2 Représentation d’un algorithme
Un algorithme est généralement exprimé dans un langage informel, ou
incomplètement formalisé : texte libre (i.e. description des différentes
étapes en français), organigramme (diagramme représentant les étapes),
pseudo-code (version simplifiée d’un langage informatique) ou autres.
Par opposition, une démonstration mathématique ou un programme
informatique sont exprimés en utilisant des langages formels. Cela
signifie donc que l’écriture d’un algorithme est souple, elle vise à
exprimer une méthode de résolution de façon compréhensible à un être
humain. Mais pour la même raison, un algorithme ne peut pas être traité
directement par un ordinateur : il doit être formalisé, i.e. transformé en
un programme.
• Il n’existe pas vraiment de norme pour les organigrammes
représentant des algorithmes. On peut tout de même mentionner
certains points qui font consensus6 :
• Les étapes sont représentées par des noeuds et les transitions par des
liens orientés entre ces noeuds ;
• Les étapes de test sont représentées par des losanges ;
• Les étapes de début et de fin sont représentées par des rectangles
aux coins arrondis ;
• Les étapes de traitement sont représentées par des rectangles ;
• Les appels à des fonctions ou procédures (aussi appelées sous-
routines) sont représentés par des rectangles dont les côtés sont
dédoublés
• Comme son nom l’indique, le pseudo-code est une
façon de décrire un algorithme en utilisant du texte
ressemblant fortement à un langage de programmation,
mais sans en être un. L’intérêt est de rester informel et
indépendant d’un langage de programmation en
particulier. Cette représentation permet aussi de ne pas
représenter explicitement les détails triviaux de
l’algorithme pour se concentrer sur l’essentiel.
Programme et compilation

• On peut considérer un programme comme la traduction d’un algorithme dans un langage de programmation,
i.e. un langage formel compréhensible par un ordinateur. On dit alors que ce programme est l’implémentation
de cet algorithme.
• Programme : séquence d’instructions destinées à être exécutées par un ordinateur.
• Instruction : action que l’ordinateur connait et peut réaliser.
Un langage de programmation (y compris le C) est caractérisé par son jeu d’instructions :
• Jeu d’instructions : ensemble des instructions autorisées dans un langage de programmation.
Un programme est stocké dans un fichier (un ensemble de données stockées sur un support persistant). On
distingue deux types de fichiers, correspondant à deux versions différentes d’un programme : fichier source et
fichier exécutable. Le premier contient ce que l’on appelle le code source, il s’agit d’un fichier texte, alors que le
second contient le code binaire, aussi appelé code machine ou code objet.
• Code source : programme exprimé dans un langage de programmation compréhensible par un être humain, et
ne pouvant pas être exécuté directement par l’ordinateur.
• Code binaire : programme exprimé en langage machine, pouvant être directement exécuté par l’ordinateur.
Le code binaire est obtenu à partir du code source, en réalisant un traitement appelé compilation. Ce traitement
est réalisé par un programme spécial appelé le compilateur.
• Compilation : action de transformer un code source en code binaire, de manière à obtenir un fichier
exécutable à partir d’un fichier source.
• Remarque : il est important de bien comprendre qu’un code source et l’algorithme qu’il implémente sont
deux choses bien distinctes. En effet, le même algorithme peut être implémenté différemment, en fonction de :
• La personne qui écrit le programme ;
• Le langage de programmation employé ;
• La machine et/ou le système d’exploitation utilisés ;
• Le niveau de précision de l’algorithme ;
• etc.
Le langage C
• Historique
• Le langage C est un langage de programmation développé à partir de 1972 dans les laboratoires Bell, dans le
but d’écrire le système d’exploitation Unix8. Sa paternité est attribuée à Dennis Ritchie et Ken Thompson,
tandis que Brian Kernighan est intervenu plus tard dans son évolution. L’un des objectifs était de définir un
langage portable.
• Portabilité : un langage de programmation est dit portable s’il peut être compilé sur des machines et de
systèmes différents, sans avoir besoin d’être modifié.

Vous aimerez peut-être aussi