CALL |
Appel |
|---|---|
| Cobol | |
Syntaxe
| CALL identifier1 [USING dataname1 [,dataname2] ...] |
Paramètres
| Nom | Description |
|---|---|
| identifier1 | Ce paramètre indique le nom du sous-programme à appeler. |
| dataname1, dataname2, ... | Ces paramètres permettent d'indiquer une variable du programme appelant, transmise au sous-programme : Par défaut, les données sont passées par référence (BY REFERENCE), ce qui signifie que le sous-programme peut lire et modifier les données directement dans le programme principal. Il est aussi possible d'utiliser d'autres modes (avec des extensions) comme BY CONTENT, pour ne transmettre qu'une copie de la donnée, non modifiable. |
Description
Cette instruction permet d'appeler un sous-programme ou une instruction spécial.
Remarques
- L'instruction CALL permet d'invoquer un sous-programme externe à partir d'un programme principal. Elle joue un rôle essentiel dans la structuration modulaire d'une application COBOL. Grâce à elle, il devient possible de réutiliser du code dans plusieurs programmes différents, ce qui facilite la maintenance et réduit la duplication de logique.
- Le paramètre identifier1 représente généralement le nom du sous-programme que l'on souhaite appeler. Ce nom peut être spécifié de manière littérale (CALL "SOUSPROG1") ou dynamique (CALL variable-name), permettant ainsi un comportement flexible basé sur les conditions d'exécution.
- La clause USING permet de transmettre des paramètres au sous-programme appelé. Les noms de données (dataname1, dataname2,...) référencent les variables du programme principal, étant partagées avec le sous-programme, en lecture, en écriture, ou les deux selon les besoins.
- Lorsqu'un programme appelle un sous-programme avec CALL, il est important que les structures de données des paramètres soient compatibles des deux côtés. Une incompatibilité (taille, type, format) peut provoquer des comportements erronés voire des plantages du programme à l'exécution.
- COBOL distingue deux types d'appels : les appels statiques et les appels dynamiques. Un appel statique se fait vers un sous-programme connu à la compilation, tandis qu'un appel dynamique repose sur un nom contenu dans une variable, ce qui permet d'appeler différents sous-programmes selon les conditions.
- Les sous-programmes appelés avec CALL doivent généralement contenir une instruction GOBACK pour revenir au programme appelant. Cette instruction assure la bonne reprise de l'exécution après l'appel. En l'absence de GOBACK ou d'un EXIT PROGRAM, le contrôle peut ne jamais revenir correctement au programme principal.
- Les sous-programmes peuvent être utilisés pour implémenter des fonctionnalités techniques comme l'accès à une base de données, des calculs complexes ou des interfaces système. Grâce à CALL, ces blocs de logique sont isolés et réutilisables, ce qui améliore la lisibilité et la testabilité du code COBOL.
- L'instruction CALL peut aussi être utilisée pour accéder à des instructions spéciales ou à des programmes système. Certains environnements permettent d'utiliser CALL pour appeler des fonctions du système d'exploitation ou des routines fournies par des bibliothèques externes, élargissant ainsi les capacités standard du COBOL.
Dernière mise à jour : Jeudi, le 28 juillet 2011