C

Le langage C peut être qualifié de bas niveau ou peu typé dans le sens où le langage manipule les mêmes sortes d’objets que la plupart des ordinateurs : des mots machine (pouvant contenir une donnée interprétée comme un nombre, un caractère ou une adresse). Le langage ne propose aucune opération qui traite directement des objets de plus haut niveau (fichier, chaîne de caractères, liste…) et il faut donc faire appel à des fonctions de la bibliothèque standard pour manipuler ce type d’objet.

Le langage C a été utilisé pour rendre le système d’exploitation UNIX plus portable. Il a conservé de cela une très grande efficacité pour tout ce qui concerne le développement système. Ainsi depuis la majorité des grands systèmes d’exploitation ont été développés en C.

De même, le langage ne propose pas en standard la gestion de la programmation orientée objet, ni de mécanisme d’exception, ou de traitement multitâche. Il existe des fonctions standards pour gérer les entrées-sorties et les chaînes de caractères, mais contrairement à d’autres langages, aucun opérateur spécifique pour améliorer l’ergonomie. Ceci rend aisé le remplacement des fonctions standards par des fonctions spécifiquement conçues pour un programme donné. En autorisant la surcharge des opérateurs, C++ permet de mélanger la souplesse de C à l’ergonomie des opérateurs spécifiques.

Ces caractéristiques en font néanmoins un langage à privilégier quand on cherche à maîtriser les ressources utilisées, le code assembleur généré par les compilateurs étant relativement prévisible et parfois même optimal sur les machines d’architecture RISC à grand nombre de registres.

Ce langage est donc extrêmement utilisé dans des domaines comme : la programmation embarquée sur microcontrôleurs, les calculs intensifs, l’écriture de systèmes d’exploitation et tous les modules où la rapidité de traitement est importante. Il est en effet une bonne alternative aux langages assembleurs dans ces domaines avec les avantages d’une syntaxe plus lisible et de la portabilité du code.

En contrepartie, la mise au point de programmes en C, surtout s’ils utilisent des structures de données complexes, est plus difficile qu’avec des langages de plus haut niveau. En effet, dans un souci de performance le langage C impose à l’utilisateur de programmer certains traitements (libération de la mémoire, vérification de la validité des index sur les tableaux…) qui sont pris en charge automatiquement par les langages de haut niveau.

Le C étant un langage simple, son compilateur est assez simple. Sur un nouveau microprocesseur, un compilateur C peut être écrit en deux mois. C’est pour cela qu’il est souvent choisi comme premier langage sur une nouvelle architecture. Le compilateur GNU GCC est d’ailleurs écrit en C : seule la partie de génération de code est à modifier quand on porte le compilateur sur une autre machine, par compilation croisée.

Beaucoup de limitations du langage C ont été levées dans le langage C++ qui est, à l’origine, un C avec la notion d’objet.

Beaucoup d’autres langages de programmation ont adopté une syntaxe (notation) ressemblant à celle du langage C, notamment C++, Java, JavaScript, PHP ou C#.

Sources : Wikipedia


Articles publiés dans cette rubrique

mardi 23 mai 2006
par  Laurent RICHARD

Examen de C

L’énoncé de l’examen de C de l’ECI version 2005-2006

samedi 20 mai 2006
par  Laurent RICHARD

Atof

Voici un autre devoir pour le cours de Langage procédural (C) de M. Hubert SCHYNS. Ré-écrire la fonction atof disponible dans la bibliothèque C traditionnelle. Le programme demande une chaîne, l’enregistre sous forme de caractère puis appelle ma fonction atof renommée monatof pour (...)
mardi 25 avril 2006
par  Laurent RICHARD

Screensaver en console

Un petit exercice pour le cours de C (en vue d’obtenir le diplôme de gradué en informatique). Un simple screensaver qui déplace les lettres d’un texte tapé par l utilisateur. Le texte peut monter ou descendre sur l ecran si on appuye sur + ou (...)
mardi 21 mars 2006
par  Laurent RICHARD

Les tables de multiplication à la sauce vecteur

Qui dit mieux qu’un vecteur pour faire une table de multiplication inversée ?
mercredi 15 mars 2006
par  Laurent RICHARD

Algorithme de calcul de la racine carrée

Comment expliquer à une machine à calculer comment calculer la racine carrée d’un nombre en n’utilisant que les opérateurs numériques simples. Voici la solution.