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).
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.