NSI - Chapitre 8 : Langages et Programmation

Chapitre 8 : Langages et Programmation

De l'assembleur à Python : comprendre comment nous parlons aux machines.

1. Un peu d'histoire

Au fil du XXe siècle, les langages ont évolué pour se rapprocher du langage humain (Haut niveau) et s'éloigner du langage machine (Bas niveau).

1951 : Grace Hopper conçoit le premier compilateur (A-0 System). C'est le début de la traduction automatique vers la machine.
1954 : Apparition du langage assembleur, première représentation textuelle du langage machine.
1964 : Création du BASIC, langage simple pour étudiants, popularisant l'instruction GOTO.
1972 : Invention du langage C (pour créer Unix) et concepts de programmation Orientée Objet par Alan Kay.
1991 : Guido van Rossum publie Python, nommé en hommage aux Monty Python.
💡 Le saviez-vous ? Il existe plus de 730 langages de programmation ! On estime aussi qu'il y a entre 15 et 50 erreurs par millier de lignes de code.

2. Bases de la programmation

Un langage de programmation est un ensemble de règles permettant d'écrire des algorithmes exécutables. Un programme est une suite d'instructions dans un langage donné.

Les constructions élémentaires

Tout programme repose sur 5 briques fondamentales :

  • Séquence : Suite d'instructions exécutées dans l'ordre (en Python, groupées par indentation).
  • Affectation : Donner une valeur à une variable (ex: x = 5).
  • Conditionnelle : Choisir un bloc d'instructions (if / else).
  • Boucle bornée : Répéter un nombre défini de fois (for i in range(10)).
  • Boucle non bornée : Répéter tant qu'une condition est vraie (while).

3. Diversité des langages

Il existe plusieurs façons de classer les langages, notamment selon leur paradigme (manière de modéliser les problèmes) :

  • Impératif : Séquences d'instructions (C, Python classique).
  • Fonctionnel : Basé sur l'application de fonctions mathématiques.
  • Orienté Objet : Basé sur des objets interagissant entre eux.

🐍 Le cas de Python

Python est un langage polyvalent, interprété et multi-paradigme. Il est à typage dynamique (une variable peut changer de type) et de haut niveau (loin de la machine).

4. Fonctions, Documentation et Tests

Pour écrire des programmes fiables, il faut respecter certaines bonnes pratiques.

Prototyper et Documenter

Le prototype définit le nom, les arguments et le type de retour. La documentation (ou docstring en Python) explique ce que fait la fonction, accessible via help().

Les Assertions

Les assertions permettent de vérifier des conditions (préconditions sur les arguments, postconditions sur les résultats) pour s'assurer que le programme ne plante pas silencieusement.

def sqrt(a):
    """ Renvoie la racine carrée de a """
    # Assertion pour vérifier la précondition
    assert a >= 0, "L'argument doit être positif"
    
    return math.sqrt(a)

Les Tests

Il est nécessaire de tester son programme. On distingue :

  • Test unitaire : Tester chaque fonction indépendamment.
  • Test d'intégration : Tester l'interaction entre les modules.
  • Test système : Tester le programme complet.

🧠 QCM : Testez vos connaissances

Répondez aux 6 questions suivantes. Chaque bonne réponse vaut 1 point.

1. Qui a conçu le premier compilateur en 1951 ?

2. Quelle construction permet d'exécuter un bloc d'instructions un nombre de fois défini à l'avance ?

3. Python est un langage dit "interprété". Qu'est-ce que cela signifie ?

4. À quoi sert une "assertion" dans une fonction ?

5. Quel paradigme de programmation est centré sur des objets interagissant entre eux ?

6. Comment appelle-t-on le test qui vérifie indépendamment chacune des fonctions d'un programme ?

© 2026 - Cours NSI - Chapitre 8