Big Tuto : Programmez avec le langage C

Chapitre 1 : L'ordinateur, un puissant outil !

Tutoriel présenté par : The Ludovyc et Jérémie F. Bellanger (Jay)
 The Ludovyc 
Publication : 16 février 2014 
Dernière révision : 17 avril 2016

      Préface de Jay

   Voici un nouveau Big Tuto, présenté par the Ludovyc, qui se propose non seulement de vous apprendre les bases de la programmation en C, si vous êtes débutant, mais aussi de vous perfectionner au-travers de nombreux exercices et mises en situation. Ce tutoriel constitue ainsi une excellente introduction aux Big Tutos SDL, qui vous permettront, à terme, de créer le jeu vidéo de vos rêves ! heart

   Et c'est donc sans attendre, que je laisse la parole à Ludovyc pour son tuto ! smiley

      I- Qu'est-ce que la programmation ? 

    La programmation informatique est un procédé qui consiste à écrire à l'aide d'un langage, dit "langage de programmation", une suite d'instructions formant un programme qui sera ensuite exécuté par une unité de calcul, autrement appelée "processeur", capable de le lire.

 

      II- Mais alors, qu'est-ce qu'un langage de programmation ?

   Un langage de programmation est une langue faite de mots (comme toutes les langues cheeky), mais ici ces mots sont en fait des instructions pour le processeur et leur bonne orthographe est donc essentielle. En effet, si un être humain est capable de lui-même de corriger les fautes de langue faites par son interlocuteur, ce n'est pas le cas de l'ordinateur, qui plantera à la première faute de frappe. wink Il s'agira donc bien d'être vigilant et d'éviter dans un premier temps le copier/coller, pour se familiariser avec cette orthographe. 

   Cette langue est aussi soumise à une syntaxe qui lui est propre : les instructions doivent être écrites d'une certaine façon, sans quoi le compilateur risque de ne pas comprendre. cheeky Mais c'est pareil en français : si vous commencez par exemple à mélanger les fonctions de la phrase, elle n'aura alors plus aucun sens, ou vous direz peut-être même le contraire de ce que vous vouliez dire. Par exemple, en inversant sujet et COD : "Pierre bat Paul." ne veut plus du tout dire la même chose que "Paul bat Pierre." L'ordre est donc aussi très important. wink

 

   Il existe maintenant plusieurs niveaux de langages. Dans l'ordre croissant, on trouve :

- le langage semi-électrique,

- le langage machine,

- le langage de bas-niveau,

- le langage de haut-niveau,

- et enfin, le langage interprété.

 

   Le langage semi-électrique est composé d'instructions qui sont en fait une suite logique de portes booléennes faites par le passage d'un courant électrique dans les transistors qui composent le processeur (on est donc plus au niveau électronique wink - et ne vous inquiétez pas pour le mot barbare "booléen", il vient en fait du nom du logicien George Boole qui a justement inventé "l'algèbre de Boole".).

   Le langage machine, appelé "assembleur", est un langage binaire (formé de 0 ou 1) capable d'être lu par un processeur. Lorsqu'il est lu, la plupart du temps, chaque instruction assembleur correspond en fait à plusieurs instructions semi-électriques, ce qui fait gagner du temps à l'écriture. Le langage semi-électrique et l'assembleur peuvent être différents d'un processeur à un autre (selon son architecture). Ce sont les constructeurs qui les définissent lors de sa fabrication.

   Un langage de bas niveau est un langage dont les instructions sont ou regroupent des instructions en assembleur. Un langage de haut niveau, quant à lui, est un langage dont les instructions sont ou regroupent des instructions soit en assembleur soit d'un langage de bas niveau. On a ainsi moins besoin d'écrire de lignes avec un langage de haut niveau, car il regroupe déjà de nombreuses instructions de bas niveau sous une seule instruction de haut niveau. cool

 

   Les langages de bas-niveau et de haut-niveau ont tous les deux besoin d'être compilés en assembleur avant de pouvoir être exécutés par le processeur. De même, en assembleur, si les instructions du programme ne sont pas toutes écrites en binaire, il faudra aussi l'assembler avant de pouvoir l'exécuter.

   Si les adresses vers la mémoire sont remplacées par des noms au moment de l'écriture du programme (parce que Hero est tout simplement plus facile à retenir que par exemple : #02a58cc9 cheeky), un éditeur de lien devra être exécuté lors de l'assemblage ou de la compilation du programme pour remplacer les noms par leurs adresses.

 

   Enfin, un langage interprété n'est pas lu directement par le processeur mais par un programme (ou une machine virtuelle) qui sera chargé ensuite d'interpréter ses instructions et de les exécuter en son sein.

   Maintenant, pour vous faire une idée, le langage C que nous allons étudier ici est un langage de bas-niveau. Pour n'en citer que quelques-uns "l'assembleur X86" est un langage machine, le "Python" est un langage interprété, et le "Java" peut être à la fois de bas-niveau, lorsqu'il est lu par un processeur qui peut lire du bytecode java, ou interprété lorsqu'il est lu au-travers de sa machine virtuelle (si, si, vous savez, le programme Java que vous avez sûrement déjà installé sur votre PC pour faire fonctionner certains programmes, qui ne pourraient pas marcher sans wink).

   Vous entendrez aussi parler de langages de haut niveau comme de langages qui prennent en compte l'héritage, le concept-objet (ou POO : Programmation Orientée Objet), la généricité, et qui sont plus puissants, plus propres, qui font le café, qui passent la tondeuse,... Non, je plaisante ! laugh Car en fait pour rentrer dans les tréfonds d'un ordinateur et l'utiliser au maximum de son potentiel, seuls les langages de bas-niveau et encore plus les langages assembleurs en sont capables car ils fonctionnent "au plus proche de la machine".

   Voilà pour ce premier petit état des lieux. C'était un peu dense, c'est vrai. Mais ne vous inquiétez pas, tout cela va s'éclaircir au fur et à mesure que vous progresserez en programmation ! smiley

   @ bientôt pour le prochain chapitre !

 

    

Connexion

CoalaWeb Traffic

Today101
Yesterday126
This week227
This month3901
Total1743108

23/04/24