La distinction entre un langage de programmation, un moteur d'exécution, une application et un logiciel est souvent source de confusion, car ces concepts sont liés mais correspondent à des niveaux différents.
1. Le langage de programmation
Un langage de programmation est un système de notation permettant à un humain d'écrire des instructions destinées à un ordinateur.
Exemples :
JavaScript
Python
C++
Java
Rust
Le langage lui-même n'exécute rien. Il définit simplement :
sa syntaxe (comment écrire les instructions)
sa grammaire
ses règles logiques
Par analogie :
Le français est un langage.
Un livre écrit en français est un programme.
Le cerveau du lecteur est le système qui interprète ce langage.
Ainsi, JavaScript est un langage, pas un logiciel.
2. Le programme
Un programme est un ensemble d'instructions écrites dans un langage.
Exemple JavaScript :
let x = 5;
let y = 10;
console.log(x + y);
Ici :
letconsole.logles variables
sont des éléments du langage JavaScript.
Le programme demande simplement :
additionne 5 et 10 puis affiche le résultat.
3. Le moteur d'exécution
Le moteur est le composant qui lit le programme et exécute les instructions.
Pour JavaScript, plusieurs moteurs existent :
V8
SpiderMonkey
JavaScriptCore
Le moteur :
lit le code
l'analyse
le transforme en instructions machine
exécute ces instructions
Par analogie :
Langage = partition musicale
Programme = morceau écrit
Moteur = musicien qui joue la partition
Sans musicien, la partition ne produit aucun son.
4. Pourquoi parle-t-on parfois de « moteur JavaScript » ?
Parce que JavaScript n'est pas directement compris par le processeur.
Entre les deux se trouve un moteur comme V8 :
Code JavaScript
↓
Moteur V8
↓
Code machine
↓
Processeur
Le moteur agit donc comme un traducteur et un exécutant.
5. Qu'est-ce qu'une application ?
Une application est un ensemble de programmes réalisant une fonction utile pour l'utilisateur.
Exemples :
Microsoft Word
Adobe Photoshop
WhatsApp
Une application peut être écrite avec plusieurs langages simultanément :
| Fonction | Langage |
|---|---|
| Interface | JavaScript |
| Serveur | Python |
| Base de données | SQL |
| Performance | C++ |
6. Qu'est-ce qu'un logiciel ?
Le terme logiciel est plus général.
Logiciel
├─ Application
├─ Système d'exploitation
├─ Pilote
├─ Compilateur
└─ Moteur d'exécution
Par exemple :
Windows est un logiciel.
V8 est un logiciel.
Word est un logiciel.
Une application est donc un type particulier de logiciel.
7. Que fait réellement un moteur JavaScript ?
À l'intérieur, le moteur réalise plusieurs étapes :
Code source
↓
Analyse lexicale
↓
Analyse syntaxique
↓
Arbre syntaxique
↓
Compilation JIT
↓
Code machine
↓
Exécution
Les moteurs modernes utilisent souvent une compilation « Just In Time » (JIT).
Le code JavaScript est converti en langage machine pendant l'exécution afin d'améliorer les performances.
8. Où se situe JavaScript dans un navigateur ?
Prenons le navigateur Google Chrome :
Chrome
├─ Interface graphique
├─ Réseau
├─ Gestion mémoire
├─ Affichage HTML/CSS
└─ Moteur JavaScript V8
Lorsque vous cliquez sur un bouton dans une page web :
Utilisateur
↓
JavaScript
↓
Moteur V8
↓
Navigateur
↓
Écran
Le moteur JavaScript sert donc de médiateur entre le code écrit par le programmeur et les fonctionnalités du navigateur.
9. Une vision hiérarchique complète
Utilisateur
↓
Application
↓
Programme
↓
Langage de programmation
↓
Moteur / Interpréteur / Compilateur
↓
Système d'exploitation
↓
Processeur
↓
Transistors
Chaque niveau traduit ou transforme l'information pour le niveau inférieur.
Résumé en une phrase
Langage de programmation : ensemble de règles permettant d'écrire des instructions (JavaScript, Python, C++).
Programme : texte écrit dans ce langage.
Moteur d'exécution : logiciel qui comprend et exécute ce programme (V8 pour JavaScript).
Application : logiciel destiné à l'utilisateur final.
Logiciel : terme général regroupant applications, moteurs, systèmes d'exploitation et autres programmes.
On peut voir cela comme :
Le langage est la langue, le programme est le texte, le moteur est le lecteur, l'application est le service rendu, et le logiciel est la catégorie générale qui englobe l'ensemble.
Aucun commentaire:
Enregistrer un commentaire