GOSUB |
Branchement à un sous-programme |
| BASIC |
Syntaxe
Paramètres
| Nom |
Description |
| numéroligne |
Ce paramètre permet d'indiquer le numéro de ligne où commence le sous-programme |
Description
Cette commande permet d'appeler un sous-programme.
Remarques
- GOSUB permet de structurer un programme BASIC en sous-parties, ce qui améliore un peu la lisibilité par rapport à un enchaînement de commandes
sans hiérarchie. Contrairement à GOTO effectuant un saut sans retour, GOSUB garde en mémoire le point d'appel pour pouvoir revenir à l'aide de
RETURN. Cela en fait un outil rudimentaire de modularisation.
- La syntaxe GOSUB numéroligne repose sur le système de numérotation des lignes, propre au BASIC original. Le numéro de ligne désigne où commence le sous-programme. Cette
approche limite la lisibilité, car on n'utilise pas de noms significatifs comme dans les langages modernes, mais des chiffres, ce qui rend le code plus difficile à
maintenir.
- Les sous-programmes appelés via GOSUB ne peuvent pas recevoir de paramètres directement, ce qui limite leur réutilisabilité. Pour transmettre des valeurs, il
faut passer par des variables globales. Cela peut facilement mener à des erreurs ou des conflits si les noms de variables sont réutilisés sans précaution.
- Le retour du sous-programme est assuré par l'instruction RETURN, ramenant le flot d'exécution à la ligne suivant le GOSUB. Il est essentiel
de bien gérer les RETURN, car l'oubli de cette instruction peut entraîner des erreurs ou des boucles infinies. Il n'est pas possible de
revenir à plusieurs endroits différents comme avec des appels de fonctions modernes.
- Le système de sous-programmes en BASIC est très primitif comparé aux fonctions modernes. Il ne supporte ni paramètres, ni typage, ni valeurs de retour. C'est une
imitation très simple des appels de procédure, surtout pensée pour découper des programmes longs, pas pour offrir une réelle logique modulaire.
- L'usage intensif de GOSUB peut rapidement conduire à du code difficile à lire, surtout si les sous-programmes sont dispersés dans un long fichier. Il est
courant de regrouper les sous-programmes à la fin du code, mais sans noms explicites, cela oblige le développeur à naviguer sans repère, ce qui nuit à la compréhension.
- Dans l'apprentissage de la programmation, GOSUB joue un rôle historique en introduisant la notion de réutilisation de blocs de code. Même si la méthode est
aujourd'hui dépassée, elle a préparé le terrain à la programmation structurée et à l'apparition des vraies fonctions dans les langages ultérieurs.
- La gestion de la pile d'appels dans BASIC est implicite et limitée, car la mémoire pour les appels de GOSUB est faible. Il est donc risqué d'imbriquer plusieurs
GOSUB sans précaution, car un débordement peut survenir si les RETURN sont mal utilisés ou oubliés. Cela impose une certaine
discipline au programmeur.
Dernière mise à jour : Vendredi, le 21 Juillet 2023