Aller au contenu

Sous-programme

Un article de Wikipédia, l'encyclopédie libre.
Ceci est la version actuelle de cette page, en date du 5 décembre 2018 à 01:21 et modifiée en dernier par ProgMan (discuter | contributions). L'URL présente est un lien permanent vers cette version.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

En informatique, un sous-programme est un sous-ensemble du programme dans sa hiérarchie fonctionnelle. Un sous-programme doit pouvoir mémoriser l'adresse du code appelant pour permettre, à l'aide d'une instruction spécifique, de charger le pointeur de programme avec cette adresse de retour.

Cela correspond bien souvent à une routine. Cependant, la notion de sous-programme est un peu plus générale, car il ne possède pas nécessairement son propre espace de noms. C'est le cas par exemple des sous-programmes appelés par l'instruction GOSUB (en) en BASIC. Dans ce cas, la notion de variable locale n'existe donc pas.

Ce terme est utilisé dans le contexte d'une conception fonctionnelle d'un logiciel, c’est-à-dire lorsque son architecture a été pensée et construite à partir des opérations qui doivent la composer.

Prenons l'algorithme suivant :

PROGRAMME prendre un repas
DEBUT
 mettre_la_table ()
 presenter (plat_du_jour)
 manger (plat_du_jour)
 presenter (dessert)
 manger (dessert)
 ranger_la_table ()
FIN

SOUS-PROGRAMME mettre_la_table
DEBUT
 placer (nappe)
 placer (assiettes)
 placer (couverts)
 placer (verres)
FIN

SOUS-PROGRAMME presenter (plat)
DEBUT
 placer (plat)
 placer (couverts_pour_plat)
FIN

SOUS-PROGRAMME manger (plat)
DEBUT
 mon_assiette = se_servir (plat)
 manger_dans (mon_assiette, mes_couverts)
 boire_dans (mon_verre)
FIN

SOUS-PROGRAMME ranger_la_table ()
DEBUT
 ranger (couverts)
 nettoyer (nappe)
FIN

Les sous-programmes servent ici à simplifier certains concepts, comme « manger ». C'est ainsi qu'un algorithme peut devenir plus clair, en étant débarrassé de tout détail (comme dans le cas de « prendre un repas »).