Présentation

Article

1 - UTILISATIONS

  • 1.1 - Assembleur portable
  • 1.2 - Assembleur de haut niveau
  • 1.3 - Langage de couplage

2 - COMPILATION ET MACROEXPANSION

  • 2.1 - Inclusion de fichiers
  • 2.2 - Expansion conditionnelle
  • 2.3 - Constantes de macroexpansion
  • 2.4 - Macrofonctions
  • 2.5 - Autres directives
  • 2.6 - Conclusion

3 - VALEURS MANIPULÉES

4 - EXPRESSIONS

  • 4.1 - Identificateurs
  • 4.2 - Littéraux
  • 4.3 - Opérateurs unaires
  • 4.4 - Opérateurs binaires
  • 4.5 - Autres opérateurs
  • 4.6 - Opérateurs sur zones
  • 4.7 - Priorités et associativités syntaxiques

5 - INSTRUCTIONS

  • 5.1 - Bloc local
  • 5.2 - Alternative
  • 5.3 - Boucle while
  • 5.4 - Boucle do-while
  • 5.5 - Boucle for
  • 5.6 - Saut
  • 5.7 - Saut indexé

6 - FONCTIONS

  • 6.1 - Phases de compilation
  • 6.2 - Exportations
  • 6.3 - Variables rémanentes
  • 6.4 - Directive extern
  • 6.5 - Fonction main

7 - BIBLIOTHÈQUES

  • 7.1 - Allocation dynamique
  • 7.2 - Échappements non locaux

8 - CONCLUSION

Article de référence | Réf : H3068 v1

Conclusion
Langage C

Auteur(s) : Christian QUEINNEC

Date de publication : 10 févr. 2002

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais En anglais

Auteur(s)

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

INTRODUCTION

Le langage C a été défini en 1972 par Denis Ritchie, chercheur des laboratoires Bell, dans le cadre d’un projet qui visait à réécrire le système d’exploitation Unix dans un langage de haut niveau. Le langage C a été fortement influencé par son premier client : Unix, et nombre de ses caractéristiques proviennent des besoins suscités par le développement de ce système. Parmi ces caractéristiques figurent :

  • la compacité d’écriture visant à minimiser la frappe des programmes (ainsi écrit-on {et} pour begin et end). La rapidité de programmation a été préférée à la lisibilité, l’inverse étant requis dans un langage comme Ada ;

  • l’absence de bibliothèque obligatoire d’exécution rejetant la manipulation des entrées /sorties, la gestion de tâches, l’allocation dynamique de mémoire, etc., dans des bibliothèques extérieures, supplémentaires et optionnelles ;

  • la proximité sémantique avec la machine d’exécution privilégiant systématiquement un contrôle fin de celle-ci au détriment de toute abstraction opaque. Citons en particulier un système de types débrayable, l’absence de booléens, l’absence de chaînes de caractères, une grande variété d’entiers de tailles diverses, etc. Cette caractéristique s’accompagne d’un slogan : « Trust the programmer », qui stipule le primat du programmeur sur la machine. En cas d’incompréhension du programme, le compilateur respectera le programme à la lettre plutôt que de le rejeter. C est souvent considéré comme un langage dangereux ou, à tout le moins, « sale » lorsque comparé à d’autres langages de programmation occupant d’autres niches et cherchant à optimiser d’autres critères. La norme ISO de 1990 ainsi que sa révision de 1999 en font un langage de plus en plus sûr. La santé de C montre bien son indéfectible vitalité dans ses niches propres.

C est un « assembleur portable de haut niveau », c’est‐à‐dire un langage de programmation de haut niveau qui permet également une manipulation précise des entités proches des processeurs. Ses caractéristiques auraient pu le réduire à n’être que le langage d’écriture d’Unix mais, le succès d’Unix aidant et comme C est disponible (par construction) sur tout Unix (puisqu’un portage d’Unix sur une machine X passe par l’écriture d’un générateur de code spécifique de C vers[nbsp ]X), C a pu être de plus en plus choisi comme langage d’écriture d’applications générales. C peut être considéré comme un langage normal de programmation avec son lot de singularités dont les plus délicates concernent les références et l’allocation.

C occupe aujourd’hui plusieurs niches dans lesquelles sa survie n’est pas menacée. C peut être utilisé pour écrire des programmes hautement portables ou hautement spécifiques.

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h3068


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais En anglais

8. Conclusion

C est un langage de programmation de haut niveau ayant des caractéristiques d’assembleur portable. Son existence sur tout ordinateur ainsi que l’identification d’un noyau portable longuement éprouvé en font un langage majeur de développement.

En revanche, c’est aussi un langage ne cherchant pas à cacher l’unité centrale sous-jacente. Les références, les mécanismes d’allocation et la multiplicité de types sont de très importants concepts délicats à dominer. Les programmeurs y trouvent à la fois une très grande précision et un certain confort.

C est le langage de choix pour les systèmes enfouis, pour l’écriture de programmes proches de la machine, pour des programmes dont la portabilité doit être assurée ou pour coupler des langages différents. Pour toutes ces raisons, C restera utilisé pendant encore quelques décennies.

HAUT DE PAGE

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Conclusion
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - KERNIGHAN (B.W.), RITCHIE (D.M.) -   The C Programming Language.  -  Prentice-Hall (1978).

  • (2) - HARBISON (S.P.), STEELE (G.L.) -   C : A Reference Manual.  -  Prentice-Hall (1991).

  • (3) - BANAHAN (M.) -   The C Book, Featuring the draft ANSI C Standard.  -  Addison Wesley (1988).

  • (4) - BRAQUELAIRE (J.P.) -   Méthodologie de la programmation en langage C, bibliothèque standard - API POSIX.  -  3e éd., Masson (1998).

  • (5) - DELANNOY (C.) -   La référence de C norme ANSI/ISO.  -  Eyrolles (1998).

  • (6) - DARNELL (P.A.), MARGOLIS (P.E.) -   C, a Software Engineering Approach.  -  3e éd., Springer-Verlag (1996)

  • ...

1 Sites Internet

Site historique http://www.lysator.liu.se/c/index.html

EiC : The embeddable/extensible interactive, pointer-safe, bytecode C interpreter/compiler

Foire aux questions http://www.eskimo.com/~scs/C-faq/top.html

Free Software Foundation FSF http://www.fsf.org

Licence GPL (Gnu Public License) http://www.gnu.org/copyleft/gpl.html

Guides de style pour C http://www.cs.umd.edu/~nelson/classes/resources/cstyleguide/

Outil d’analyse statique de programmes C http://lclint.cs.virginia.edu/

Carte de référence de C http://www.refcards.com/

Dictionnaire du jargon http://www.tuxedo.org/~esr/jargon/

HAUT DE PAGE

2 Normes

Groupe de normalisation ISO C http://www.dkuug.dk/JTC1/SC22/WG14/

ISO/CEI 9899 : 1990 Langage de programmation - C

ISO/CEI 9899 : 1999 Langage de programmation - C

HAUT DE PAGE

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS