L'Encyclopédie
Accueil · Informatique & IA · Concepts

Les Langages de Programmation

Informatique → Parler à la machine → Traduire une intention en instructions — Un langage de programmation est une langue formelle permettant d'écrire des instructions qu'un ordinateur peut exécuter.

Informatique → Parler à la machine → Traduire une intention en instructions


Enjeu global

Un langage de programmation est une langue formelle permettant d’écrire des instructions qu’un ordinateur peut exécuter. Un ordinateur ne « comprend » que du binaire (0/1) ; le langage sert de pont entre la pensée humaine (une intention, un algorithme) et l’exécution machine. Enjeu : trouver le bon compromis entre ce qui est lisible pour l’humain et ce qui est efficace pour la machine.


Du plus « bas » au plus « haut » niveau

  • Le langage machine : le binaire pur (0/1), directement exécuté par le processeur. Illisible pour l’humain.
  • L’assembleur (assembly) : une couche à peine au-dessus (des mnémoniques comme MOV, ADD) — proche du matériel, très fastidieux.
  • Les langages de haut niveau : proches du langage humain (mots, structures logiques), abstraits de la machine. C’est là qu’on programme aujourd’hui (Python, Java…). Plus « haut niveau » = plus lisible/rapide à écrire, mais souvent moins optimisé.

Compilé vs interprété (comment le code s’exécute)

  • Compilé (C, C++, Rust) : le code est traduit en une fois en langage machine par un compilateur, puis exécuté. Rapide à l’exécution ; c’est une traduction au sens strict (voir La Traduction — Principe et Techniques).
  • Interprété (Python, JavaScript) : le code est lu et exécuté ligne par ligne par un interpréteur. Plus souple, plus lent. (Beaucoup de langages mélangent les deux, ex. Java via une « machine virtuelle ».)

Les grands paradigmes (façons de penser le code)

  • Impératif / procédural : décrire une suite d’étapes (C, Pascal). « Fais ceci, puis cela. »
  • Orienté objet (POO) : organiser le code en objets qui combinent données et comportements (Java, C++, Python). Modéliser le monde en « choses » qui interagissent.
  • Fonctionnel : le calcul comme fonctions mathématiques, sans état modifiable (Haskell, Lisp ; influences dans Python, JS).
  • Déclaratif : décrire ce qu’on veut, pas comment l’obtenir (SQL pour les bases de données).

Panorama des langages majeurs

  • C (1972) : la base, proche du matériel, rapide — systèmes d’exploitation, embarqué.
  • C++ : C + objet, performance — jeux vidéo, logiciels lourds.
  • Python : lisible, polyvalent — science des données, IA, scripts, débutants.
  • JavaScript : le langage du web (navigateurs, sites interactifs).
  • Java : robuste, portable — entreprises, Android.
  • Autres : SQL (bases de données), Rust (sûreté + vitesse), Go, Swift (Apple), R (stats), PHP (web).

Enjeux contemporains

  • L’IA qui code : des outils (Copilot de Microsoft/OpenAI, voir Microsoft, Les Critiques de l’IA — Panorama) génèrent du code — bouleversant le métier de développeur (aide ou remplacement ?).
  • Le langage comme pouvoir : maîtriser un langage, c’est agir sur le monde numérique. Question d’accès, d’éducation et d’autonomie.

À retenir

Un langage de programmation traduit une intention humaine (un algorithme) en instructions exécutables. Il se situe entre le bas niveau (binaire, assembleur) et le haut niveau (Python, lisible) ; il est compilé (traduit d’un bloc, rapide) ou interprété (ligne à ligne, souple) ; et il incarne un paradigme (impératif, objet, fonctionnel, déclaratif). Chaque langage est taillé pour un usage (C pour le système, Python pour l’IA, JS pour le web).

🔗 Liens

Fiches qui citent celle-ci (4)