Table of Contents

AccueilArticles → Unix et le C/C++

Unix et les Languages C/C++

Le language C est l'un des plus usités pour développer les logiciels et applications embarquées, pour autant sa définition est d'une extrême simplicité.

Un livre synthétique de 272 pages, 32 mots clés, une telle simplicité a pour autant permis de construire quasiment tout l'écosystème actuel.

Le C++ qui en est une évolution conséquente apporte les outils de la programmation à grande échelle, la capacité de créer un modèle propre aux domaines d'applications c'est à dire l'infrastructure à partir de laquelle une application complexe peut être créée de façon efficiente.

Leur conception a pourtant été le fruit d'une approche pragmatique sans ambitions particulière autre que celle de répondre à une problématique du moment.

Ken Thompson écrivait une simplification de Multix, un projet d'école destiné à devenir un système d'exploitation. Trop complexe, lorsque ce projet prit fin, Ken Thompson (Bell Labs), poursuivit l'écriture d'un système d'exploitation qui deviendra Unix.

Inspiré par Multix, écrit en assembleur, Unix deviendra la raison d'être du language C, qui lui permit d'être porté sur différentes architectures, il est par nature portable et universel (le même code sera compilé pour des architectures différentes là ou l'assembleur est spécifique pour chacune).

Dennis Ritchie fit évoluer le B en lui apportant les structures et les types (nombre intégral, virgule flottante, carractère), ce qui en fit l'expression d'un language universel (C). Bjarne Stroustup apporta au C les classes, c'est à dire les types créés par l'utilisateur (nombre complexe, unité de temps, …).

La force du C, C++ et la flexibilité d'Unix ont été employés ensuite pour les besoins de Bell Labs puis à travers d'autres applications. C++ a apporté les type construit par l'utilisateur, c'est à dire la possibilité de modeler un type et de l'employer nativement, tel qu'un nombre complexe, sa partie réelle, imaginaire et ses opérateurs.

Exemples C/C++

Somme complexe (Réel, Imaginaire) en C++

Complex a {1,1}, b {1,-1}, r;
r = a + b;

Affiche les variables d'environnement en C

#include <stdio.h>
int main(int argc, char **argv, char **envp) {
 for (char **env = envp; *env != 0; env++) {
   printf("%s\n", *env);   
 }
 return 0;
}

AccueilArticles → Unix et le C/C++