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
- Ordinateur · Code informatique · Microsoft (éditeurs, outils, IA de code)
- La Traduction — Principe et Techniques (compilateur = traducteur) · Le Schéma de Jakobson (langue, code, fonctions) · Les Critiques de l’IA — Panorama (l’IA qui programme)
- Informatique & IA
Fiches qui citent celle-ci (4)
- Les Classifications du Savoir (et Obsidian) Informatique & IA
- Informatique & IA Informatique & IA
- La Création de Sites Web Informatique & IA
- Microsoft Informatique & IA