Décrit une séquence d'instructions qui modifient l'état du programme (variables, boucles, conditions). C'est le paradigme le plus naturel et le plus proche du fonctionnement machine. Exemples : C, Python procédural. Proche du Von Neumann : on décrit comment faire les choses pas à pas.
Fonctionnel
Calcul défini comme application de fonctions pures (sans effet de bord, résultat dépend uniquement des entrées). Données immuables. Avantages : facilite le raisonnement, la parallélisation, les tests. Exemples : Haskell, OCaml, Scala. Python supporte partiellement (map, filter, lambda, list comprehensions).
Orienté objet (POO)
Organise le code en objets regroupant données (attributs) et comportements (méthodes). Repose sur l'encapsulation, l'héritage et le polymorphisme. Exemples : Java, Python OOP, C++. La plupart des langages modernes sont multi-paradigmes et combinent ces approches selon les besoins.
Récursivité et calculabilité
Récursivité
Fonction qui s'appelle elle-même. Structure obligatoire : cas de base (condition d'arrêt) + appel récursif qui se rapproche du cas de base. Exemples : factorielle, Fibonacci, parcours d'arbre. Avantage : code élégant et naturel pour les structures récursives. Risque : dépassement de pile (stack overflow) si profondeur trop grande ou cas de base manquant.
Problème de l'arrêt et indécidabilité
Turing (1936) a prouvé qu'il n'existe aucun algorithme général capable de déterminer si tout programme arbitraire se terminera. Ce résultat établit des limites fondamentales de l'informatique : certains problèmes sont indécidables — on ne peut pas les résoudre algorithmiquement. Conséquence : l'anti-virus parfait n'existe pas en théorie.
Modularité et réutilisabilité
Organiser le code en modules indépendants (fonctions, bibliothèques, packages) ayant chacun une responsabilité unique (Single Responsibility Principle). Avantages : lisibilité, maintenance simplifiée, réutilisation entre projets, travail en équipe. En Python : import, from module import. Les modules limitent le couplage entre composants.