Compilateurs C
Accueil

du site

Divers types de compilateurs


Il existe, de par le vaste monde WWW, de très nombreux compilateurs de sources en langage C.

Un complilateur est un logiciel complexe qu'il convient de se procurer auprès de Firmes spécialisées.

Pour être utilisable, il doit comporter au moins :

  • Un éditeur de liens
  • Un Editeur de librairies
  • Un Débogueur efficace.
  • Une librairie de fonctions système suffisante. Entrées-sorties clavier, écran, enregistrement sur disque, etc.

Chaque type d'ordinateur dispose de son propre langage binaire, généralement incompatible avec ses congénères. L'ensemble de ces logiciels de compilation doit donc être compatible avec l'ordinateur ciblé.

En fait, c'est le langage binaire de l'Unité Centrale - le microprocesseur - qu'il faut adopter.
Les microprocesseurs de la famille Intel - dont le Pentium - ne sont pas du tout compatibles avec ceux de la famille Motorola - 68 xxx etc. -

Pour ceux qui programment des cartes industrielles pilotées par des micro processeurs, des micro contrôleurs ou des processurs de signal - DSP -, un logiciel de compilation différent sera nécesaire pour chaque type de processeur utilisé.

De plus, ces logiciels devront fournir un programme exécutable "romable" - expliquons-nous :

Code "exécutable" contre code "romable"
Les programmes exécutables destinés aux ordinateurs de type PC sont généralement enregistrés dans des fichiers de type exécutable " . exe ". Lors du lancement du programme : le système d'exploitation gérant les diques fait appel à trois logiciels spéciaux :

  • le logeur ou relogeur ( locater ou relocater ), qui a pour but, en fonction de l'espace mémoire déjà occupé lors du lancement, de trouver une place dans la mémoire vive de l'ordinateur pour y copier le code binaire du programme à lancer.
    Il doit en plus recalculer toutes les adresses utilisées dans le code du logiciel compilé.
  • le chargeur ( loader ) qui a pour but de copier le fichier exécutable relogé.
  • le lanceur ( launcher ) qui lance ce programme.

Code "romable"
Les systèmes autonomes sur cartes pilotées par microprocesseurs n'ont généralement pas de disques ni disquettes pour y stocker leurs programmes.

Ceux-ci sont enregistrés une fois pour toutes dans des mémoires ROM, EPROM ou FLASH .

Les logiciels de compilation destinés à ce type d'applications dites embarquées ou à logiciel enfoui doivent pouvoir fournir un fichier exploitable pour enregistrement des programmes dans les mémoires précitées.

Entre autres particularités, ces logiciels doivent permettre le "relogeage" automatique des adresses utilisées par le programme en fonction de l'espace disponible dans les mémoires que seurl l'architecte de la carte peut connaître.

 

Et nous, dans tout çà ?


Quel compilateur allons-nous employer pour faire des exercices dans la suite de ce cours ?

Voici mes propositions :

  1. Les programmes source seront écrits de manière qu'ils puissent être compilés par la plupart des compilateurs actuels, dont le vôtre si vous en avez un.
  2. Si vous n'avez pas de compilateur, des pourparlers sont actuellement en cours avec un fournisseur de ce type de logiciels pour voir dans quelle mesure vous pourriez vous en procurer un à un prix très très raisonnable.
  3. Enfin, pour les "totalement démunis" il y a encore une solution qui n'est pas sans intérêt : parallèlement à ce cours de langage C, j'écris un cours de "JavaScript". Les deux langages sont très proches l'un de l'autre et je vais m'efforcer de faire en sorte que les exercices d'apprentissage soient très proches.
    Mais, allez-vous me dire : quel compilateur employer pour "JavaScript" ?
    Si vous posez cette question, c'est que vous n'avez pas lu attentivement ce qui précède : JavaScript est un langage in-ter-pré-té !
    Et son interpréteur n'est autre que votre explorateur internet ( Internet Explorer ou Netscape ).
    Et ne me dites pas que vous n'en avez pas : vous ne pourriez pas lire ces pages sans !

Si vous avez des questions ou d'autres idées :



Applications console et interfaces graphiques


Le lecteur est actuellement habitué aux interfaces graphiques telles que Windows qui présentent les programmes sous forme d'écrans colorés avec dessins, graphiques, fenêtres d'affichage, animations etc.

Pour créer ce type d'applications il faut deux choses très différentes :

  • Savoir programmer - en C++ de préférence -
  • Savoir mettre en oeuvre l'interface graphique de Windows

On ne peut pas tout faire à la fois !

Aussi, nous commencerons par nous intéresser à la programmation pure. Laissant pour plus tard la prise en compte de l'interface graphique.

Cela ne signifie pas que les programmes écrits sans interface graphique soient moins puissants, bien au contraire !. Ils s'exécutent beaucoup plus rapidement et les fonctionnalités sont assurées avec plus de fiabilité.

Par exemple, dans des applications industrielles, l'interface graphique peut nuire à la fiabilité de l'exécution du fait qu'elle n'est pas toujours gérée en temps réel.

Quoi qu'il en soit, nous commencerons par des applications dites de type "console".

Voici par exemple une application de type console appelée "route.exe"
Fournie avec les systèmes d'exploitation Windows, elle est utilisée pour la gestion des réseaux TCP/IP.



Nous sommes désolés, c'est bien peu coloré, mais en nous débarassant des problèmes que pose la gestion de l'interface graphique, nous pourrons mieux nous concentrer sur la programmation.

 

La suite : Premier programme!
Sommaire Langage C - C++
Accueil

du site