COBOL : cinq questions à maîtriser pour un entretien d'embauche

Vous postulez à un nouveau job dans le domaine du mainframe ? Rafraîchissez vos connaissances en COBOL en répondant à ces 5 questions stratégiques.

Les candidats à des postes impliquant l'utilisation du langage COBOL doivent démontrer une solide connaissance et une bonne expérience des divisions, des types de données, des instructions PERFORM et des types de recherche.

Facilitez-vous l'épreuve en anticipant ces questions courantes et en préparant des réponses détaillées.

1. Quelles sections comporte la division des données (Data Division) ?

La division des données décrit les champs, enregistrements et fichiers en mémoire. Elle définit toutes les données d'un programme COBOL.

Cette division comporte six sections : FILE, WORKING-STORAGE, LINKAGE, LOCAL-STORAGE, REPORT et SCREEN.

La section FILE contient une ou plusieurs entrées File Description, qui consistent en descriptions d'enregistrements de niveau 01. Si une entrée indique que tous les enregistrements varient en longueur, vous pouvez les lire à l'aide de la clause OCCURS DEPENDING ON. Cette clause fait varier la taille des enregistrements en fonction du nombre d'occurrences qu'ils contiennent.

La mémoire de travail (section WORKING-STORAGE) définit les noms des données afin que le programme puisse manipuler ces dernières. Cette section décrit les données à l'aide de la clause OCCURS.

La section LINKAGE fait partie d'un programme appelé qui établit un lien avec les données de la section WORKING-STORAGE du programme appelant.

Une section LOCAL-STORAGE est allouée chaque fois qu'un programme est appelé. Elle est libérée lorsque le programme exécute les instructions EXIT PROGRAM, GOBACK ou STOP RUN.

La section REPORT contient une ou plusieurs entrées Report Description, suffisamment explicites.

La section SCREEN sert à créer des formulaires sur un écran.

2. Quelles sont les techniques de recherche et dans quelles circonstances doivent-elles être utilisées ?

La recherche est soit binaire, soit séquentielle.

La recherche binaire est plus rapide lorsque le tableau contient plus de 100 entrées. Utilisez-la si les entrées du tableau sont répertoriées par ordre croissant ou décroissant. Pour garantir un bon fonctionnement, utilisez l'instruction SEARCH ALL avec la clause ASCENDING KEY ou DESCENDING KEY. Incluez la clause INDEXED BY.

La recherche séquentielle organise le tableau lorsque les entrées sont dans un ordre aléatoire. L'instruction SEARCH effectue la recherche de haut en bas dans le tableau. Vous devez définir l'index à 1 pour la clause INDEXED BY.

3. En quoi le multithreading diffère-t-il du threading sur une CPU unique ?

Le multithreading permet à un programme d'exécuter simultanément des tâches distinctes (threads).

Un programme se déroule plus rapidement lorsque plusieurs threads sont exécutés sur plusieurs CPU. Pour répartir un programme sur plusieurs threads, utilisez la clause RECURSIVE dans la section PROGRAM-ID. Tous les programmes COBOL doivent être compilés avec l'option de compilation THREAD afin que les threads soient correctement alloués.

Chaque thread peut utiliser la même copie des données provenant de la section WORKING-STORAGE. Si vous utilisez la section LINKAGE, assurez-vous qu'une copie de la section LOCAL-STORAGE est disponible pour chaque appel du programme. Vous devez libérer cette section lorsque le programme appelé est renvoyé au programme principal.

Cependant, le multithreading en COBOL comporte certaines limites. Evitez par exemple les éléments de langage indésirables ; ainsi, les instructions ALTER, GO TO et STOP RUN ne fonctionnent pas avec le multithreading.

4. Donnez quelques exemples de dialectes de COBOL.

Un dialecte de COBOL contient des instructions ou des directives de compilation spécifiques de cette instance du langage. Un dialecte de COBOL ne peut donc pas être utilisé dans d'autres dialectes.

Micro Focus Studio Enterprise Edition for Unix contient des dialectes qui sont activés lors de la compilation. Par exemple, avec Micro Focus, le dialecte ACU permet la compatibilité avec ACUCOBOL. ENTCOBOL spécifie que les mots réservés dans IBM Enterprise COBOL for z/OS et OS/390 doivent également être traités comme tels dans Micro Focus. De la même manière, ISO 2002 spécifie que les mots réservés dans la norme COBOL ISO 2002 doivent également l'être dans Micro Focus. Dans cette norme, les syntaxes de référence des zones A et B sont combinées dans la zone de texte du programme ; le texte peut commencer n'importe où dans cette zone.

5. Quel est le plus gros problème à prendre en compte lorsque le programme COBOL principal appelle un sous-programme C/C++ ?

Le plus gros risque est celui d'un dépassement de capacité mémoire dans un sous-programme C/C++ appelé par le programme COBOL principal pendant la compilation. Lorsque la mémoire utilisée est trop importante, il se produit un dépassement de pile, d'autant plus grave que la taille de pile d'un sous-programme C/C++ donné est réduite. Le programme a donc moins d'espace de pile par thread lors de l'exécution du sous-programme dans des modes de multithreading. Moins il y a d'espace de pile, plus la mémoire est susceptible de déborder.

Le problème est aggravé lorsque des threads se partagent le segment de mémoire (ou tas). Vous devez donc vous assurer que les threads n'essaient pas d'accéder aux mêmes segments de mémoire en même temps dans le programme C.

Pour approfondir sur Recrutement

Close