Un bref aperçu de l’histoire des langages de programmation C

À une époque où d’autres langages de programmation à usage général sont disponibles, tels que Java, Python et Ruby, C et ses différents parents .NET restent des langages importants pour les développeurs. Malgré son âge, les développeurs du monde entier travaillent encore couramment en C, C#, C++ et Objective-C pour créer des portefeuilles sophistiqués d’applications modernes.

Cet article examine rapidement l’histoire du langage de programmation C et son rôle dans les efforts de développement de logiciels de haut niveau. En comprenant son histoire, les développeurs peuvent recueillir le contexte nécessaire pour comprendre ce qui rend les langages basés sur C utiles pour la gestion des systèmes embarqués, le traitement dynamique des données et d’autres projets de programmation complexes.

Le début de C

L’histoire du langage de programmation C a commencé avec son utilisation pour déplacer le code du noyau dans le système d’exploitation Unix original d’AT&T. L’objectif était d’effectuer le processus de déplacement d’un noyau, ou noyau, d’une application en utilisant le moins de lignes de code possible.

Ken Thompson, un employé des Bell Labs, s’était déjà efforcé de créer un langage de programmation pour la plate-forme Unix qui pourrait atteindre cet objectif. Cela a abouti à une version modifiée du langage de programmation combiné de base (BCPL) qu’il a appelé B, qui présentait des caractéristiques telles que des opérateurs d’affectation généralisés pour les calculs et une syntaxe simplifiée.

Un autre employé des Bell Labs, Dennis Ritchie, s’est finalement appuyé sur le travail de Thompson pour créer C en 1972, en se concentrant sur la résolution de certaines des faiblesses du modèle sémantique de B, telles que ses mécanismes de gestion des caractères maladroits, ainsi que son approche lente du code fileté. Finalement, le langage a porté les principes fondamentaux du BCPL existant et l’a imprégné de sa propre structure de type.

Bien que le développement du système d’exploitation Unix ait commencé en 1969, son code a été réécrit du langage d’assemblage au langage C en 1972. La conception de C en tant que langage d’implémentation du système Unix est documentée dans un article des Bell Labs intitulé “Le développement du langage C”.

Premières implémentations de C

Au début de 1973, le langage C moderne était terminé et son compilateur était suffisamment puissant pour justifier sa mise en œuvre dans divers systèmes logiciels au sein de Bell. Avec le temps, le système d’exploitation Unix basé sur C a été utilisé dans les environnements d’organisations universitaires et gouvernementales axés sur la recherche.

En 1978, Dennis Ritchie et Brian Kernighan ont publié le livre Le langage de programmation Cqui a servi de source de référence commune pour C. Cette période de l’histoire de C est souvent appelée la version K&R de C, en référence à Kernighan et Ritchie.

Cette nouvelle itération de C comportait de nouvelles fonctionnalités de développement innovantes, telles que :

  • une bibliothèque d’E/S standard ;
  • types de données non signés et entiers longs ;
  • divers opérateurs d’affectation composés (tels que =+) ;
  • fonctions void() ;
  • affectations de type de données de structure ;
  • types énumérés ; et
  • la possibilité de stocker différents types de données dans un seul emplacement de mémoire.

En 1983, l’American National Standards Institute (ANSI) a créé l’ANSI X3.159-1989 : langage de programmation C, connu sous le nom d’ANSI C. Une autre norme successive du langage a été publiée et appelée ISO C (ou C90). Des modifications successives ont eu lieu en 1995, 1999 et 2011, chacune appelée respectivement C95, C99 et C11. C11, qui a duré environ cinq ans, a ajouté une autre série de fonctionnalités innovantes à C et à ses bibliothèques, telles que :

  • fonctions aux limites vérifiées ;
  • structures anonymes;
  • opérations atomiques;
  • capacités de multithreading ;
  • Prise en charge d’Unicode ; et
  • macros génériques de type.

Cas d’utilisation modernes de C

Aujourd’hui, le langage de programmation C alimente des technologies de pointe englobant tout, des systèmes d’exploitation aux systèmes embarqués. C comporte généralement une empreinte mémoire gérable, ainsi que des besoins en ressources d’exécution raisonnables. Il fonctionne à proximité du matériel, est hautement portable et présente une approche déterministe pour l’utilisation des ressources qui convient aux applications modernes.

Pour illustrer, voici une liste de certains des cas d’utilisation les plus courants de C :

Systèmes d’exploitation

C est toujours un langage préféré lorsqu’il s’agit de travailler avec des noyaux système et des pilotes de périphériques. Les noyaux des systèmes d’exploitation Linux, macOS, iOS, Microsoft Windows et Android sont tous des exemples d’endroits où la programmation C a trouvé sa place.

Bases de données

Les bases de données telles que MySQL, PostgreSQL et Microsoft SQL Server comportent en bonne place des bases de code écrites en C. Par exemple, même si la base de données Oracle a été écrite en langage assembleur lors de sa conception en 1977, elle a finalement été réécrite en C pour la sortie d’Oracle v3 en 1983. .

Conception du compilateur

De nombreux compilateurs et interpréteurs utilisés dans les nouveaux langages comme Perl et Python fonctionnent à l’aide d’approches basées sur C, car l’association avec C rend souvent le code plus compréhensible pour la machine moyenne.

Systèmes embarqués

De nombreux conducteurs de l’électronique domestique et personnelle de tous les jours, tels que les réveils, les télécommandes, les cafetières et les micro-ondes, sont programmés en C. Même les fonctionnalités automobiles telles que les affichages du tableau de bord, les serrures à l’épreuve des enfants, les systèmes d’entrée sans clé, les commandes d’airbag et les sièges chauffants sont souvent codé en C, grâce à sa compatibilité historique avec le matériel informatique.

Films 3D

De nombreuses suites d’applications utilisées pour développer des films 3D sont construites en C et C++, en raison de la nécessité de traiter de grandes quantités de données et d’effectuer un grand nombre de calculs chaque seconde.

Leave a Comment