Sous-programme

Un sous-programme (ou une procédure) est un ensemble nommé d'instructions qui peut être appelé à volonté par un programme principal.

Les sous-programmes permettent de structurer le code source des programmes en décomposant les problèmes en sous-problèmes afin :

    • de rendre les programmes plus lisibles en nommant des ensembles d'instructions pour indiquer clairement l'action réalisée ;
    • de réduire l'occupation en mémoire en conservant une seule copie des ensembles d'instructions utilisées à plusieurs endroits dans le programme principal.

En langage algorigramme, les sous-programmes mettent en œuvre trois types d'instructions spécifiques :

    • l'instruction de type « Procédure » qui définit un sous-programme en lui donnant un nom et un point de départ ;
    • l'instruction de type « Gosub » qui appelle un sous-programme : l'exécution du programme « saute » à la première instruction du sous-programme ;
    • l'instruction de type « Return » qui termine le sous-programme : l'exécution se poursuit immédiatement après le Gosub qui a appelé le sous-programme.

Les sous programmes peuvent être imbriqués : des sous-programmes peuvent faire appel à d'autres sous programmes (tant qu'il y a assez de mémoire pour enregistrer les points d'appels pour les retours).

Par exemple, dans le programme ci-dessous :

    • Gauche avant est un sous-programme qui met la roue gauche d'un robot en rotation vers l'avant ;
    • Gauche stop est un sous-programme qui arrête la roue gauche ;
    • le programme principal appelle ces deux sous-programmes pour faire avancer la roue gauche par intermittence : en avant pendant une seconde puis arrêt pendant une seconde ;
    • l'utilisation de ces sous-programmes permet d'écrire un code qui se concentre sur l'effet produit (faire avancer la roue, l'arrêter) plutôt que sur la manière dont cet effet est obtenu (instructions Low et High sur des sorties logiques) ; c'est une abstraction ;
    • ces sous-programmes pourraient être réutilisés facilement dans un autre programme en copiant leur définition.

Dans le groupe Procedures du logiciel PICAXE Editor 6 :

    • le bloc Procedure permet de :
      • définir un sous-programme ;
      • de lui donner un nom (Name of subroutine) ;
      • de lui associer un commentaire ;
    • le bloc Gosub permet d'appeler un sous-programme dont le nom apparaît dans une liste des sous-programmes déjà définis ; il faut donc définir les sous-programmes avant de pouvoir les appeler ;
    • le bloc Return termine un sous-programme.