« Langage C/Introduction au C » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-%C3%A9 +é)
LydieBot (discussion | contributions)
m clean up, remplacement: sommaire → Sommaire (2) avec AWB
Ligne 2 :
| idfaculté = informatique
| niveau = 15
| précédent = [[../|sommaireSommaire]]
| suivant = [[../Outils/]]
| numéro = 1
Ligne 52 :
Ces instructions sont stockées dans notre ordinateur sous la forme de bits, de petites données qui valent soit 0, soit 1. Ainsi, nos instructions ne sont rien d’autre que des suites de 0 et de 1, stockées dans notre ordinateur, et que notre processeur va interpréter comme étant des ordres à effectuer. Ces suites de zéros et un forment ce qu'on appelle le '''langage machine''', qui est difficile à comprendre pour un être humain, communiquer avec l'ordinateur uniquement par le biais de ce langage serait très complexe et extrêmement long. Autant vous dire que créer des programmes de cette façon revient à se tirer une balle dans le pied. En effet, pour maîtriser le langage binaire, il faudrait connaître par cœur des suites de 0 et de 1 totalement abstraites.
 
Cependant, de nombreux outils servent d'intermédiaire entre le langage humain, bien trop complexe pour une machine, et le langage machine, bien trop abstrait pour un humain. Ces nombreux outils sont les langages de programmation, ceux-ci permettent l'écriture de programmes dans un langage bien plus proche des langages humains tel que le français ou l'anglais, mais néanmoins très logique et structuré afin de permettre une compatibilité avec le langage machine. Grâce à ces langages de programmations, il est possible d'écrire nos programmes sous forme de textes et de nombres en [[w:Syst%C3%A8me_décimalSystème décimal|base décimale]], c'est-à-dire avec des chiffres de 0 à 9. Il existe de très nombreux langages de programmations, le C est un de ces langages.
 
Malgré le fait que les langages de programmations soient extrêmement logiques et structurés, ils restent très loin du code binaire interprété par notre processeur. Ainsi, pour que celui-ci puisse suivre les instructions que nous avons programmées, il faut aussi avoir une sorte de traducteur qui fera le lien entre votre langage de programmation et le langage machine. Ce traducteur va ainsi traduire le texte écrit dans un langage de programmation évolué en une suite de zéros et d'un que le processeur peut comprendre. Ainsi vous pourrez commander votre processeur sans pour autant connaître le langage machine.
 
Pour illustrer, ce code écrit en C (que nous apprendrons à connaître) est quand même largement plus facile à comprendre qu’une suite de 0 et de 1.
Ligne 67 :
}
</source>
 
 
''Pour vous donner une idée de la difficulté de programmer sans l'intermédiaire d'un langage de programmation, voici ce même programme écrit en langage machine (sous format [[w:Hexadécimal|hexadécimal]]) : ''
Ligne 530 ⟶ 529 :
0016240 052145 061141 062554 057400 067151 072151 000000
0016255}}
 
 
Il ne reste plus qu’à utiliser un interprète qui va traduire ce texte (un programme écrit dans notre langage de programmation) vers la langue de l’ordinateur (des suites de 0 et de 1) : le '''compilateur'''. Voici un petit schéma qui résume tout ça :
 
 
[[Image:Compilation.PNG|600px|center|Schéma simplifié de la compilation d'un programme.]]
Ligne 543 ⟶ 540 :
=== L'histoire du C ===
 
Le langage C est né au début des années 1970 dans les laboratoires AT&T aux États-Unis. Son concepteur, [[w:Dennis_RitchieDennis Ritchie|Dennis Ritchie]], souhaitait améliorer un langage existant, le B, afin de lui adjoindre des nouveautés. En 1973, le C était pratiquement au point, et il commença à être distribué l’année suivante. Son succès était tel auprès des informaticiens que l'[[w:American National Standards Institute|ANSI]] en 1989, puis l’[[w:Organisation internationale de normalisation|ISO]] en 1990 décidèrent de le normaliser, c’est-à-dire d’établir les règles officielles du langage. On parle donc de C89 / C ANSI ou bien C90 / C ISO (au choix). D’autres normes sortirent plus tard, en 1999 (on parle de C99) et en 2011 (on parle de C11).
 
=== Pourquoi apprendre le C ? ===
Ligne 556 ⟶ 553 :
Ce ne sont que quelques arguments parmi tant d'autres, mais se sont à mon goût des raisons plus que suffisantes pour justifier l'apprentissage de ce langage. Bien entendu, le C comporte aussi des défauts. On peut citer la tolérance aux comportements dangereux qui fait que le C demande beaucoup de rigueur pour ne pas tomber dans certains « pièges », le nombre restreint de concepts, qui impose de devoir recoder certains mécanismes qui existent nativement dans d’autres langages, etc. D’ailleurs, si votre but est de développer rapidement des programmes amusants, le C n’est pas du tout adapté à cet usage, et je vous encourage à vous tourner vers d’autres langages tel que le Python.
 
Le C possède aussi une caractéristique qui peut-être considérée à la fois comme un avantage et comme un défaut : c’est un langage de '''bas niveau'''. C'est-à-dire qu’il permet de programmer en étant proche de sa machine, en cherchant à vraiment comprendre ce que l’on fait. C’est à double tranchant : c’est plus difficile et plus long, mais on en apprend beaucoup sur sa machine et on a un grand contrôle sur ce que l’on fait. Cette notion de bas niveau est à opposer aux langages de '''haut niveau''', qui permettent de programmer en faisant abstraction d’un certain nombre de notions primordiales dans le cas d'un langage de bas niveau. Le développement est souvent plus facile et plus rapide, mais en contrepartie on voit moins bien le fonctionnement de la machine. Ces notions de haut et bas niveau sont néanmoins à nuancer, car elles dépendent du langage utilisé et du point de vue du programmeur.
 
Même si c'est un langage qui ne sera pas abordé au long de ce cours, il me semble important d'évoquer le C++, dont vous avez peut-être déjà entendu parler. C’est un langage de programmation qui a été inventé dans les années 1980 par Bjarne Stroustrup, un collègue de Dennis Ritchie, qui souhaitait rajouter des éléments au C. Bien que très ressemblants à l’époque de sa création, ces deux langages sont aujourd’hui très différents (on ne programme pas et on ne réfléchit pas de la même façon en C qu’en C++). Ne croyez pas qu’il y a un langage meilleur que l’autre. Ils sont simplement différents. Si d’ailleurs votre but est d’apprendre le C++, je vous encourage à le faire directement. Contrairement à ce que l’on pense et dit souvent, il est tout à fait possible d'apprendre le C++ sans passer par l'apprentissage du C.
Ligne 602 ⟶ 599 :
{{Bas de page
| idfaculté = informatique
| précédent = [[../|sommaireSommaire]]
| suivant = [[../Outils/]]
}}
 
 
 
[[en:Introduction to C]]