LES COMPATIBLES GE-400
LES AIDES A LA PROGRAMMATION (SOFTWARE)
Pour lutilisateur dun ensemble électronique, les aides à la programmation Software possèdent une importance au moins équivalente aux caractéristiques propres de la machine elle-même. Cest pour cette raison que General Electric sest efforcé délaborer pour la série des Compatibles 400 un ensemble aussi complet que possible des programmes. Dans ce but ont été mis au point des programmes modulaires à partir desquels lutilisateur peut construire un système satisfaisant à ses besoins. Ce système est une entité dans laquelle sont utilisées les techniques modernes de programmation, mais cette entité reste dynamique et peut toujours évoluer en fonction du développement de linstallation et/ou des travaux ou encore bénéficier des apports de techniques de programmation nouvellement mises au point.
Les programmes modulaires utilisés avec les GE-400 présentent un certain nombre de caractéristiques essentielles:
- Il est possible de choisir et dutiliser le niveau de langage approprié à chaque tâche. Ainsi, par exemple, un programmeur peut combiner, suivant les besoins, des programmes écrits en COBOL et en langages de lassembleur de base et du macro-assembleur.
- Le langage dorigine pour la rédaction de chaque programme particulier peut être librement choisi grâce à lutilisation dun programme de chargement standard, dune structure standard, des programmes machines et des supports dinformation.
- La mise au point des programmes-sources est efficacement réalisée en raison de lexistence de compilateurs rapides et de la segmentation des programmes.
- Le caractère modulaire du système offre une large gamme dexploitation.
- Enfin, lexploitation peut atteindre une grande efficacité et lutilisation des unités périphériques peut être rendue optimale par lemploi des programmes dentrée/sortie et des interruptions.
En dehors de lassembleur de base ou autocode qui est un langage élémentaire de programmation produisant des programmes en format translatable, la série des compatibles GE 400 possède une importante bibliothèque de programmes généraux que nous allons sommairement décrire dans les pages suivantes.
I.-Système dentrée/sortie de base (BIOS).
Ce système de base qui a été conçu pour faciliter lutilisation de tous les autres systèmes de programmation peut presque être considéré comme faisant partie intégrante de la machine (tout comme un élément de « hardware »). Il se trouve en effet presque constamment enregistré en mémoire. Le BIOS peut être divisé en quatre sections distinctes:
- La section de contrôle de lentrée/sortie évite de réassembler les programmes déjà écrits lorsque la configuration des équipements périphériques a été modifiée sur la machine. Pour ce faire, le programme objet adresse léquipement périphérique au moyen dun numéro qui est traduit par le BIOS. De cette manière, un programme écrit pour une machine déterminée peut être également utilisé sur tout autre machine de la même famille.
- La section du canal de lunité centrale possède quatre sous-sections fonctionnelles de base capables dexploiter et interpréter chacune des quatre interruptions possibles du canal de lunité centrale.
- La section de contrôle de la machine à écrire contient les séquences nécessaires à la lecture ou à lécriture de messages à partir de la machine à écrire en mode alphanumérique ou octal.
- La section moniteur est constituée: de séquences gérant les fins de travail permettant lenchaînement automatique sur le travail suivant par lappel du programme moniteur, dune zone de communications de 21 mots assurant le lien fonctionnel entre les divers programmes de service (assembleurs, moniteur, chargeur).
II. - Le macro-assembleur.
Le langage du macro-assembleur est une extension logique de lassembleur de base qui est essentiellement lié à la machine. Cette extension prend la forme de macro-instructions qui peuvent être utilisées pour effectuer des opérations sur des données décrites à laide de définition de zones. Ce langage est tel quune instruction peut générer plusieurs instructions machine. Il existe des macro-instructions pour les opérations dentrée/sortie, les opérations arithmétiques, les transferts de données et les commandes de procédure.
Les macro-instructions dentrée/sortie peuvent communiquer avec le système dentrée/sortie de base (BIOS) et avec le système dentrée/sortie complet (EIOS). Il est ainsi possible de normaliser et de faciliter la programmation pour tout léquipement périphérique.
Le programme de macro-assemblage comprend quatre parties:
- La division identification permet didentifier et de préciser le programme dorigine et de spécifier les options du programme de macro assemblage.
- La division environnement permet au programmeur de préciser les caractéristiques du calculateur devant être utilisé pour lexploitation du programme résultant et de spécifier le programme de commande principal pour le traitement des entrées/sorties.
- La division données décrit le format des fichiers et affecte des emplacements de mémoire aux zones de fichiers, aux zones de travail et aux constantes. Les données sont définies par des zones plutôt que par des mots de mémoire.
- La division procédure contient des macro-instructions, ainsi que des instructions et des pseudo-instructions du langage de lassembleur de base.
Pour utiliser le programme de macro-assemblage, il est nécessaire de disposer dun ensemble comprenant:
- Une unité centrale avec mémoire 8K;
- Un contrôleur de bande;
- Quatre lecteurs de bande;
- Une imprimante;
- Un lecteur de cartes;
- Un perforateur de cartes.
Le programme peut utiliser avantageusement des modules de mémoire supplémentaires et des lecteurs de bandes magnétiques peuvent être substitués aux unités périphériques plus lentes.
Le programme dorigine écrit sur les feuilles de programme est perforé sur des cartes (même dessin que la feuille de programme) et est ensuite introduit dans le calculateur, soit directement à partir des cartes, soit à partir dune bande magnétique dont les enregistrements ont le même dessin que les cartes.
Le programme de macro-assemblage comprend trois phases:
- Phase de traduction;
- Phase de sélection;
- Phase dassemblage.
La phase de traduction correspond à lanalyse des cartes dentrée dorigine et détermine si le langage du macro-assembleur a été utilisé ou non. Si le programme dorigine ne contient pas de division environnement ou données, la phase dassemblage est chargée dans le calculateur et les phases non nécessaires à lassemblage ne sont pas utilisées.
Le programme de macro-assemblage permet dutiliser un langage dorigine avec macro-instructions et de traduire ce langage en instructions des GE 400. Le langage de lassembleur de base comporte un code pour chaque opération que le calculateur peut exécuter. Le langage du macro-assembleur permet de disposer dinstructions qui génèrent une série de ces codes opérations. Ce langage exécute des opérations sur des données décrites lors de définitions de zones.
Il est une extension logique du langage de lassembleur de base. Les chances dintroduire des erreurs dans le programme dorigine se trouvent ainsi considérablement réduites.
Le programmeur peut écrire entièrement son programme dans le langage du macro-assembleur ou bien combiner les opérations de lassembleur de base aux macro-opérations.
Des macro-instructions supplémentaires peuvent être ajoutées au langage dorigine. Les générateurs nécessaires au traitement de ces instructions peuvent être écrits par lutilisateur dans le langage du macro-assembleur ou de lassembleur de base. Ils peuvent également être ajoutés au programme de macro-assemblage sous la forme dun sous-programme de bibliothèque.
Le programme de macro-assemblage présente les principales caractéristiques suivantes:
- Un ensemble minimum mais suffisant de macro-instructions;
- Toutes les opérations-machine et pseudo-opérations disponibles dans le langage assembleur de base;
- Une division donnée séparée avec format fixe;
- Le moyen dobtenir les sous-programmes dentrée/sortie automatiques;
- Un langage dorigine qui est commode pour le programmeur et qui est facilement assemblé;
- Une division identification qui fournit une description suffisante du programme dorigine.
III. - Le système dentrée/sortie complet (EIOS).
Dans un programme courant, le programmeur doit répéter au point voulu la codification nécessaire à lexécution des entrées/sorties, ce qui notamment prend de la place en mémoire et introduit des risques derreurs supplémentaires, tout en limitant la compatibilité des programmes. Cest dans le but de diminuer ou de supprimer ces inconvénients et de simplifier le travail du programmeur que le système dentrées/sorties complet (EIOS) a été écrit.
Ce système est un ensemble de sous-programmes traitant des entrées/sorties et qui a, en plus de celles du BIOS, les caractéristiques suivantes:
- Groupage et dégroupage des articles dun bloc;
- Traitement alterné des zones dentrée/sortie;
- Traitement continu des entrées/sorties base sur linterruption automatique de priorité;
- Vérification des labels de bande;
- Traitement alterné des bandes dès détection de « fin de bande »;
- Comptage des blocs et utilisation des numéros de séquence des blocs (block serial number);
- Points de reprise;
- Désignation modulaire utilisant au mieux la mémoire.
Les programmes de lEIOS permettent de commander toutes les unités périphériques à savoir: lunité de bande magnétique (avec ou sans double canal), le lecteur de cartes, le perforateur de cartes, limprimante, la machine à écrire, le lecteur de bande perforée, le perforateur de bande, la mémoire à disques, le lecteur/trieur de chèques.
Les programmes de lEIOS sont incorporés au programme généré par lintermédiaire du MAP et la configuration nécessaire pour lEIOS est la même que celle qui est requise pour le MAP. Leur désignation modulaire permet au programmeur de sélecter uniquement les modules nécessaires pour lexécution des fonctions dentrée/ sortie désirées par le programme généré.
LEIOS comprend quatre groupes distincts de programmes:
1. Les programmes qui groupent et dégroupent les articles;
2. Les programmes qui alternent les zones tampons et déterminent le moment à partir duquel une zone peut être traitée;
3. Les programmes qui exécutent les opérations dentrée/sortie en se servant du BIOS;
4. Les programmes de service.
Les sous-programmes communs dentrée/sortie de lEIOS destinés à être incorporés dans chaque programme assurent de façon standard, lexécution des fonctions de base (transfert de données, vérification de ces transferts, etc.).
Dautre part, de manière à éviter au maximum les risques derreurs, des programmes de traitement de « labels ,» (ou étiquettes) de bande ont été inclus. Ces labels comportent trois parties en entrée.
En fin de bande, les labels permettent, dune part de faire la distinction entre fin de bobine et fin de fichier et, dautre part, la vérification du nombre de blocs écrits sur la bande.
Il existe également des parties laissées en blanc où le programmeur peut écrire les remarques quil juge utiles.
IV- Package de multiprogrammation.
Ce puissant élément de software permet le déroulement simultané en mémoire dun nombre de programmes indépendants limité seulement par les périphériques disponibles et la taille de la mémoire. Six routines distinctes (exécutif, entrées-sorties, interruption, contrôle opérateur, initiation, fermeture) permettent le changement, le démarrage et la terminaison dun programme quelconque appelé par lopérateur concurremment au déroulement des autres programmes en machine. Lensemble opère sous le contrôle du moniteur.
V- I.D.S.
Cest une méthode nouvelle unique dutilisation dun fichier central chaîné sur disques, basée sur la création de liens de relations fonctionnelles entre des éléments denregistrements (un texte de commande sera chaîné aussi bien à un numéro de commande quà un numéro de vendeur par exemple). Le fichier est traité comme une extension directe de la mémoire par des macro-instructions puissantes mais simples demploi.
Lapparition dIDS rend enfin praticable lutilisation des mémoires à accès aléatoire si séduisantes sur le plan théorique.
VI- Le COBOL GE 400
Le compilateur COBOL GE-400 permet de traduire COBOL 61 et ses extensions, ainsi que certains éléments facultatifs de COBOL. Des programmes écrits en COBOL 61 sont compatibles avec les autres systèmes de programmation GE-400, tels que le générateur de programmes dédition détats imprimés et le programme de macro-assemblage.
Les quatre divisions séparées de COBOL GE 400 correspondent aux quatre éléments principaux exigés pour la solution des problèmes de traitement de linformation dans le domaine de la gestion: divisions identification environnement, données et procédures.
Le COBOL GE 400 permet dutiliser automatiquement les instructions à une ou deux adresses, tous les mots index, léclatement et le réassemblage des données.
VII - Le FORTRAN 400.
FORTRAN 400 est un langage de codification automatique conçu principalement pour les applications scientifiques et techniques. Il est utilisé couramment dans toute lindustrie et est considéré comme un langage universel de programmation scientifique. FORTRAN 400 ressemble beaucoup au langage mathématique et constitue ainsi un moyen de communication commode entre lutilisateur et le calculateur.
Il comprend des déclarations entrant dans lune des catégories suivantes:
- Les déclarations arithmétiques qui permettent deffectuer des calculs arithmétiques ou logiques;
- Les déclarations de programme qui permettent de définir et dutiliser des sous-programmes;
- Les déclarations de commande qui déterminent le déroulement du programme;
- Les déclarations dentrée/sortie qui définissent les formats et les sous-programmes dentrée/sortie désirés;
- Les déclarations de spécification qui permettent daffecter des zones de mémoire aux données et de décrire ces données.
Ces déclarations sont composées de constantes, de variables, dindices, dexpressions arithmétiques et logiques et dappel à des sous-programmes.
VIII - Les programmes relatifs au système opératoire.
Le chargeur Les segments du programme qui ont été testés et assemblés séparément vont être chargés à des emplacements consécutifs et réunis effectivement au dernier moment, simplifiant la mise au point de tout le programme.
Le moniteur assure la gestion optimum de la machine en améliorant le rapport temps utile/temps disponible.
a) Il permet une utilisation économique de la machine pendant les séances de mise au point des programmes en enchaînant automatiquement les phases dassemblages et dessais (LOAD and GO), assurant éventuellement larrêt dun programme mal codé et lenchaînement sur le programme suivant.
b) Il assure une exploitation continue des programmes dexploitation, soit en fonction de paramètres, soit en fonction dun ordre préétabli sur une bande programme.
Le Librarian permet de constituer des bandes programme source ou programme objet, dassurer leur maintenance et de créer également les bandes comportant les compilateurs qui seront utilisés par le moniteur.
IX- Les générateurs de tri et fusion.
Ils utilisent le scatter-gather et ladressage indirect, ce qui réduit les temps de tri et de fusion. Ils permettent linsertion par lutilisateur de son propre programme pour des traitements précédant ou suivant le tri ou la fusion des enregistrements.
Les programmes générés peuvent être placés sur une bande magnétique pour être utilisés avec un temps dappel minimum.
X - Les générateurs détats imprimés.
Une simple procédure remplace le travail de codification de lédition, généralement fastidieux. Les descriptions de la page à éditer, de la date, du numéro de la page et de la partie des informations à prendre en compte pour traitement et décisions logiques suffisent au générateur.
Le programme ainsi constitué peut alors être utilise par le système opératoire, écrit sur la bande magnétique et exploité par le moniteur de programme.