Sommaire
Le logiciel Microsoft COBOL 4.0 est la dernière version proposé Microsoft du langage de programmation COBOL. Parmi les nouveautés de la version 4.0, on retrouve les fonctionnalités suivantes :
- Lors de l'installation sur un système OS/2, SETUP ajoute PATH et les informations de variable d'environnement à CONFIG.SYS et non à OS2INIT.CMD comme dans les versions précédentes. Cela est conforme à la norme d'installation d'OS/2 v1.1 et versions ultérieures.
- Les fichiers DBCS.EXE/.DLL et V-ISAM.DLL ne sont plus nécessaires et ne sont pas inclus dans cette version.
- Les fichiers d'exécution partagés, COBLIB.DLE et COBLIB.DLL sont utilisés par les composantes de ce système et doivent être chargés pour que le système fonctionne. COBLIB.DLE est requis pour DOS, COBLIB.DLL pour OS/2.
- L'interface du gestionnaire de fichiers appelable ne fait plus partie de ce produit. Si vous souhaitez utiliser la fonction CALLFH ou appeler directement le gestionnaire de fichiers, vous aurez besoin d'une copie de Micro Focus COBOL/2 Toolset.
- Les directives par défaut, NOCOPYLBR, ANS85, NOOSVS et MF sont maintenant intégrées au compilateur et ne sont pas incluses dans le COBOL.DIR créé par SETUP. Les ANS85 et OSVS peuvent être modifiés par SETUP, afin que NOANS85 et/ou OSVS soient inclus dans le COBOL.DIR créé par SETUP. Le SETUP permet également de sélectionner SAA et les bibliothèques de liaison par défaut.
- Le VSC2 est maintenant équivalent à VSC2(3). Auparavant, le VSC2 était équivalent à VSC2(2). Les directives VSC2 OLDVSC2 ont été remplacées par VSC2(1).
- La directive OLDFILEIO a été remplacée par la directive IDXFORMAT définissant le type de fichier indexé requis. IDXFORMAT"2" est équivalent à OLDFILEIO.
- Le verbe GOBACK et le registre spécial RETURN-CODE font désormais partie du langage de programmation Micro Focus COBOL standard et peuvent être utilisés sans avoir besoin de VSC2 ou OSVS. Ils sont activés par un niveau MF de 5 ou plus (activé par défaut) et peuvent donc être désactivés en spécifiant MF(4).
- Les commentaires suivant le PROGRAM-ID, étant autorisés dans les versions précédentes, ne sont plus autorisés par défaut. Ils peuvent cependant être activés à l'aide de la directive PROGID-COMMENT.
- Pour l'interfaçage au niveau de l'assembleur, notez que les noms de classe de segment d'objet créés par le compilateur COBOL ont changé dans cette version.
- La valeur ALPHASTART par défaut a été définie sur 1 pour se conformer à la norme ANSI'85. Dans les versions précédentes, ce paramètre était défini sur 0. Si vous avez des programmes utilisant la clause ALPHABET du paragraphe SPECIAL-NAMES, vous devrez peut-être spécifier la directive ALPHASTART"0" pour maintenir le comportement requis.
- ACCEPT .. FROM DAY-OF-WEEK L'instruction «ACCEPT data-item FROM DAY-OF-WEEK» renvoyé incorrectement la valeur 0 pour dimanche. Il renvoie maintenant une valeur de 7, comme documenté.
- COMP-5 : Le comportement par défaut des éléments de données USAGE COMP-5 a été modifié. Dans les versions précédentes du produit, le COMP-5 était traité de la même manière que le COMP signé. Il est maintenant traité de la même manière que COMP-X, ce qui lui permet d'être un véritable élément numérique binaire utilisant un ordre d'octets spécifique à la machine. Cela en fait un type de données très efficace. Si vous utilisez COMP-5 dans des programmes existants et dépendez de sa gestion des signes, vous devez compiler vos programmes avec la directive COMP-5"1".
- NEXT SENTENCE : La NEXT SENTENCE est gérée différemment dans cette version du produit. Dans les versions précédentes, la NEXT SENTENCE faisait passer le contrôle à la fin de la phrase (c'est-à-dire après le point suivant) ou à l'instruction suivant le délimiteur de fin de portée suivant. Dans cette version, il ira toujours à la fin de la phrase, comme défini par la norme ANSI'85. Si votre programme utilise NEXT SENTENCE et s'appuie sur le changement de contrôle vers le délimiteur de fin de portée approprié, vous pouvez utiliser la directive MF "5" (mais voir ci-dessus pour V4.5). Alternativement, changez les phrases NEXT SENTENCE en CONTINUE, ce qui aura l'effet désiré.
- Clause SYMBOLIC CHARACTERS : La valeur par défaut de SYMBSTART a été définie sur 1 pour se conformer à la norme ANSI'85. Dans les versions précédentes, cette valeur était définie sur 0. Si vous avez des programmes utilisant la clause SYMBOLIC CHARACTERS du paragraphe SPECIAL-NAMES, vous devrez peut-être spécifier la directive SYMBSTART"0" pour maintenir le comportement requis.
- RECORDING MODE : La phrase RECORDING MODE a été modifiée de sorte que, lorsqu'elle est explicitement incluse dans un FD, elle remplace la clause RECORD dans tous les cas, RECORDING MODE F provoquant toujours la création d'un fichier au format fixe et RECORDING MODE V un fichier au format variable. Si vous avez besoin du comportement d'origine, dans lequel RECORDING MODE est remplacé par la clause RECORD, utilisez la directive MF"5". Notez que la directive RECMODE ne remplacera pas la clause RECORD.
- Mots réservés REPORT-WRITER : La directive RW a été rendue obsolète en incorporant les mots réservés REPORT-WRITER dans les principaux dialectes prenant en charge REPORT-WRITER. Si vous avez un programme utilisant des mots réservés REPORT-WRITER comme noms de données et étant compilé avec la directive NORW, vous devez remplacer la directive NORW par USE(NORW). Cela entraînera la suppression des mots réservés REPORT-WRITER de la liste de mots réservés, les rendant disponibles pour une utilisation en tant que noms de données.
- INSPECT : Le traitement de la phrase LEADING dans INSPECT a été modifié pour le rendre conforme à une interprétation récente de la norme ANSI'85. Par exemple, si data-stream contient "//AAA BBB OOO CCC", l'instruction :
- COPY filenames : Étant donné que cette version fait désormais la distinction entre les noms de fichiers sans extension, mais avec un point final, et ceux sans point final (traitant le premier comme une extension spécifiée d'espaces), certaines instructions COPY dans les programmes existants peuvent sembler cesser de fonctionner. Si vous souhaitez que vos fichiers de copie aient l'extension .CPY, mais que vous les encodez dans votre programme sans extension, vous devez vous assurer que le nom n'a pas de point final. Par exemple, modifiez :
- Un grand nombre d'appels de sous-programmes système d'exécution, fournis dans les versions antérieures en tant qu'appels par numéro, ont été remplacés par des appels nommés. En plus de faciliter la mémorisation et l'utilisation des appels, les appels par nom peuvent accepter des paramètres définis dans n'importe quelle partie de la division de données. Les appels d'appel par numéro remplacés sont toujours pris en charge dans cette version et documentés ci-dessous. Cependant, nous vous recommandons de les remplacer par les appels équivalents par nom, le cas échéant.
- Tailles d'enregistrement : Dans les versions précédentes, les tailles d'enregistrement maximale et minimale spécifiées pour un fichier au format variable devaient être les mêmes dans chaque programme référençant le fichier. Cette restriction a été supprimée, permettant aux programmes de spécifier des longueurs d'enregistrement différentes de celles spécifiées dans le programme utilisé pour créer le fichier. Cependant, si une tentative est faite pour écrire un enregistrement étant plus petit que le plus petit défini ou plus grand que le plus grand défini, une erreur d'exécution, 9/044, sera renvoyée.
- La méthode requise pour animer les programmes a changé dans cette version. Lorsqu'un programme est compilé pour l'animation, à l'aide de la directive ANIM, les fichiers de code intermédiaires sont regroupés dans des fichiers .OBJ et .DLL sous OS/2). Ces fichiers .EXE/.DLL peuvent être animés de la manière habituelle. Les fichiers de code intermédiaire pur (.INT) ne sont plus nécessaires pour l'animation.
- Étant donné que la nouvelle méthode d'animation intègre une étape de liaison, tous les fichiers .OBJ non COBOL peuvent être liés avant l'animation. Ceux-ci fonctionneront correctement lorsqu'ils seront rencontrés, mais toujours en mode zoom. Cette nouvelle technique rend IANIM et INT augmenté obsolètes, et ces fonctionnalités ne sont pas prises en charge dans cette version. La même méthode permet aux appels de fonction d'API d'OS/2 d'être résolus avant l'animation, évitant ainsi d'avoir recours à la technologie Install Function des versions antérieures.
- Cette version a le commutateur +F défini par défaut. Cela entraînera le piégeage de données illégales dans les champs numériques pendant l'animation et lors de l'exécution de fichiers .OBJ de code intermédiaire (erreur système d'exécution 163). Cela peut entraîner l'échec des programmes existants là où ils fonctionnaient auparavant. Cependant, le piégeage de telles instances aidera à empêcher le code généré par la suite d'échouer. Tous les programmes générés fonctionneront comme actuellement, en supposant toujours que les champs numériques contiennent des données numériques.
- La bibliothèque de liaison, OS2.LIB, doit être utilisée à la place de DOSCALLS.LIB lors de la liaison d'applications à utiliser sur OS/2. Le OS2.LIB est fourni avec les utilitaires. (DOSCALLS.LIB peut être utilisé à condition que l'application ne soit pas une application Presentation Manager.)
- L'option /NOP n'est plus requise lors de la liaison pour une utilisation sur OS/2.
- L'environnement par défaut pour les applications créées à l'aide de cette version est l'environnement d'exécution partagé. Ceci est particulièrement recommandé pour une utilisation sous OS/2, où une seule copie de COBLIB.DLL peut être partagée par n'importe quelle application COBOL (conçue pour utiliser COBLIB) s'exécutant dans n'importe quelle session OS/2.
- Pour utiliser cet environnement, l'application est liée de la manière habituelle, à l'aide des bibliothèques COBLIB.LIB et COBAPI.LIB ou OS2.LIB selon DOS ou OS/2. Les fichiers EXE produits seront beaucoup plus petits car peu de code système d'exécution est inclus directement. Les programmes système, tels que EXTFH et ADIS, peuvent être liés à l'application ou liés en tant que sous-programmes autonomes. Encore une fois, pour OS/2, s'ils sont liés en tant que fichiers .DLL autonomes, ils peuvent être partagés par n'importe quel nombre d'applications COBOL.
- Ces programmes système doivent être liés à COBLIB pour être utilisés avec les applications COBLIB.
- Les modules liés avec COBLIB ne peuvent pas être mélangés avec des modules liés avec LCOBOL. Par conséquent, les applications doivent être soit toutes LCOBOL, soit toutes COBLIB. Cependant, les applications COBLIB et les applications LCOBOL peuvent être exécutées sur le même environnement tant qu'elles n'essaient pas de s'appeler.
- Les fichiers de bibliothèque de liaison (.LIB) fournis avec le système ont été divisés de manière différente pour permettre une utilisation réduite du disque. Ils se composent désormais de LCOBOL.LIB, COBLIB.LIB et COBAPI.LIB. Le nouveau LCOBOL est équivalent à l'ancien PCOBOL. L'ajout de COBAPI.LIB à LCOBOL.LIB donne l'ancien LCOBOL. (Les utilisateurs peuvent souhaiter recombiner ces bibliothèques à l'aide de LIB s'ils souhaitent conserver les anciennes pratiques de travail.) Pour le fonctionnement OS/2, LCOBOL.LIB est utilisé en combinaison avec OS2.LIB (remplaçant DOSCALLS.LIB).
- Dans le système d'exécution partagé, la valeur par défaut, COBLIB.LIB, est équivalente à l'ancienne PRCOBOL.LIB. Encore une fois, COBAPI.LIB ou OS2.LIB est utilisé en combinaison avec COBLIB.LIB pour terminer la liaison pour DOS ou OS/2 respectivement. Les applications liées à ces bibliothèques seront beaucoup plus petites, bénéficiant du support du système d'exécution partagé dans COBLIB.DLE et COBLIB.DLL. (Notez que l'application elle-même peut être liée afin qu'elle s'exécute à la fois sur DOS et OS/2 à condition que les deux fichiers système d'exécution partagés soient présents.)
- Si vous sélectionnez un environnement de liaison autre que celui par défaut intégré, SETUP créera un LINKLIB par défaut dans votre COBOL.DIR. La valeur par défaut, et l'équivalent des versions précédentes, est LINKLIB(LCOBOL+COBAPI). Si vous utilisez normalement le système sous OS/2, utilisez LINKLIB(LCOBOL+OS2). Avec cette version, la valeur par défaut consiste à utiliser le système d'exécution partagé COBLIB, nécessitant LINKLIB(COBLIB+COBAPI) sous DOS et LINKLIB(COBLIB+OS2) sous OS/2.
- Lorsque la valeur par défaut a été définie de cette manière, vous pouvez toujours lier pour une utilisation dans d'autres environnements en spécifiant les bibliothèques appropriées sur la ligne de commande LINK. Cependant, vous devez utiliser la directive /NOD pour ce faire, sinon des erreurs de liaison peuvent se produire.
- Le gestionnaire de fichiers pour les fichiers indexés, IXSIO, a été remplacé par le gestionnaire de fichiers externe, EXTFH. Cela peut être lié exactement de la même manière qu'IXSIO dans les versions précédentes, soit lié à l'application, soit lié en tant que programme système autonome. Les programmes référençant des fichiers ANSI'85 EXTERNAL et des fichiers indexés normaux n'utilisent désormais que EXTFH plutôt que deux gestionnaires de fichiers distincts.
- Si vous compilez vos programmes sur OS/2 en utilisant des fichiers de traitemet par lot, vous devrez modifier les fichiers de traitement par lots à compiler en utilisant la commande COBOL au lieu de PCOBOL. Vous pouvez également copier COBOL.EXE vers PCOBOL.EXE dans le répertoire système COBOL.
- Les programmes précédemment compilés sans la directive ANS85, s'ils sont recompilés sous ce système par défaut, peuvent ne pas fonctionner correctement. La cause la plus probable est que le nouveau système a ANS85 activé par défaut. Cela fait que tous les codes d'état de fichier sont des états ANS85 et non ANS74. Le problème peut être évité en utilisant la directive NOANS85 lors de la compilation de tout programme conçu pour fonctionner avec les états de fichier ANS74.
- La structure du dictionnaire du compilateur a été modifiée. Cela signifie que les fichiers IDY créés par des versions antérieures ne seront pas compatibles avec ANIMATOR dans ce système. Par conséquent, vous devez recompiler, avec cette version du compilateur, tout programme que vous souhaitez animer.
- Les fichiers .OBJ créés par cette version ne sont pas compatibles avec les fichiers .OBJ créés par les versions antérieures. Par conséquent, si vous avez besoin de reconstruire une application où l'un des OBJ a été créé à l'aide de cette version, vous devez recompiler tous les programmes avec cette version du compilateur avant la liaison.
- Dans les versions précédentes de ce logiciel, une erreur est donnée lors de l'ouverture d'un fichier indexé si les longueurs d'enregistrement du fichier ne correspondent pas exactement à celles données dans la DF. Cela a été modifié de sorte que l'erreur n'est donnée que si une tentative est faite pour écrire un enregistrement plus grand que le maximum ou plus petit que le minimum.
- Le module Report Writer a été modifié afin d'être compatible avec IBM OS/VS COBOL lorsque la directive OSVS est utilisée. Il s'agit de la norme ANSI'68 COBOL. Dans les versions précédentes, la valeur par défaut avec OSVS était l'éditeur de rapport standard ANSI'74 COBOL. Vous pouvez avoir des programmes d'écriture de rapports utilisant les fonctionnalités OSVS, mais nécessitant la compatibilité avec l'écriture de rapports ANSI'74. Ce mélange n'est plus possible, et vous devrez soit supprimer les fonctionnalités OSVS (essayez VSC2), soit accepter la norme ANSI'68 COBOL Report Writer.
INSPECT data-stream TALLYING count-field
FOR LEADING "A" "\" " "O" "C"
renvoyait la valeur 5 dans count-field dans les versions précédentes, mais renvoie maintenant la valeur 2. Cela est dû au fait que les caractères restants dans la phrase LEADING sont considérés comme inéligibles une fois qu'une correspondance a été trouvée sur l'un des caractères.
COPY "mycopy.".
par :
COPY "mycopy".
Noter que :
COPY mycopy.
est traité comme s'il n'avait pas de point final, et donc comme dans les versions précédentes.
Dernière mise à jour : Dimanche, le 6 février 2022