IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Cobol Discussion :

Commande ALTER en cobol


Sujet :

Cobol

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Points : 184
    Points
    184
    Par défaut Commande ALTER en cobol
    Bonjour, dans ma documentation et sur le net, je ne trouve aucune description de la Commande Cobol ALTER !

    Pourriez vous m'éclairer ?

    Merci
    « Ne me faites pas d'objections.
    Les difficultés en feront assez d'elles-mêmes. »

    sir Winston Churchill

  2. #2
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    ALTER est la plus déconseillée des instructions Cobol.

    Extrait de mon cours Cobol :

    ALTER

    Change le point de transfert d’un GO TO.

    Proc1.
    GO (TO) xxxx (la seule instruction)
    Trait.
    .../...
    ALTER proc1 TO (PROCEED TO) proc2.

    Avant le ALTER proc1 est exécutée normalement (branchement à xxxx), après le ALTER proc2 est exécutée à la place de xxxx à chaque fois que le contrôle passe par proc1.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Points : 184
    Points
    184
    Par défaut
    Merci pour cette réponse, Effectivement, le GO TO étant déjà pas mal indigeste, l'ALTER en rajoute une belle couche d'incompréhension algorithmique !!!

    Je vais faire avec !
    « Ne me faites pas d'objections.
    Les difficultés en feront assez d'elles-mêmes. »

    sir Winston Churchill

  4. #4
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Moi, le GO TO il me plaît bien et en trente ans de carrière je n'ai jamais utilisé l'ALTER.

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Trouvé dans "COBOL Reference Manual" d'IBM (Mainframe) :
    ALTER statement

    "The ALTER statement encourages the use of unstructured programming practices; the EVALUATE statement provides the same function as the ALTER statement and helps to ensure that your program will be well-structured."

    Cette instruction COBOL, héritée des temps anciens de l'informatique, a ceci d'original que c'est une instruction qui modifie une autre instruction !

    Elle est bien sûr à bannir dans le cadre d'une bonne pratique de programmation et peut même poser des problèmes dans un contexte de multiprogrammation (conflit avec la réentrance notamment).

  6. #6
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 056
    Points
    32 056
    Par défaut
    Effecitvement, ça fait peur. Sur du code qui a 25 ans d'âge et qui est déjà illisible(mon quotidien), ça serait le pompon.

    Ils avaient des idées bizarres, les pionniers.....
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  7. #7
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Ouuais, ils nous faisaient faire de l'ALTERophélie. mais ils ont fait avancer les choses. Et dire que j'ai vu et vécu un peu de ça.

  8. #8
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    +1.
    L'instruction Alter Cobol est l'héritage de la technique d'aiguillage des premières générations de programmeurs assembleurs et est absolument à banir.
    Se rappeler que l'apport essentiel de COBOL II sur COBOL 1 porte sur la structuration des programmes et leur réentrance. ALTER c'est le contraire de ces concepts. Avec les premières versions COBOL II IBM, les docs de migration COBOL II prévenaient qu'ALTER était appelé à disparaître. Curieusement ce n'a pas été le cas. C'est plus qu'étonnant et je cherche encore la justification d'une instruction qui semble injustifiable. Alors si quelqu'un peut avoir une idée de cette raison, je suis acheteur.
    Effectivement au mieux un evaluate, au pire un go to depending on (je n'aime pas beaucoup plus) simplifierait bien la vie de quelqu'un qui serait confronté à un plantage dans un programme 'altérique'.

  9. #9
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Homer-ac Voir le message
    ... qu'ALTER était appelé à disparaître. Curieusement ce n'a pas été le cas. C'est plus qu'étonnant et je cherche encore la justification d'une instruction qui semble injustifiable. Alors si quelqu'un peut avoir une idée de cette raison, je suis acheteur...
    J'en ai pas mais si j'en trouve je te la ferais à 0 centime (je dirais plutôt millime).

    ALTER est toujours dans la doc technique de tous les nouveaux compilateurs Cobol. A part quelques conseils pour ne pas l'utiliser, nada sur la réentrance.

  10. #10
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Quelques souvenirs (séquence émotion) :
    Les premiers programmes étaient écrits en Assembleur. On travaillait à l'époque dans les années 70 avec des brouettes et donc avec des fourches !
    Dans les années 70, vu la puissances des premiers 'mainframe' chaque instruction était choisie pour gagner du temps CPU. On codait donc en Assembleur des trucs comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DEBUT NOP TRAITEMENT
              OI   DEBUT+1,X'FO'     -> aiguillage de première fois, on va en séquence puis à TRAITEMENT les coups suivants (OI = ou inclusif)
    ou encore : 
              XI   TRAIT1+1,X'F0'
    TRAIT1    B    TRAIT2                -> aiguillage dit de flip/flop. en séquence après TRAIT1 la première fois, pris Branch à TRAIT2, puis TRAIT1 etc... (XI = ou exclusif)
    Vous avez dits réentrance structurée ? La seule justification de ceci était de limiter les tests pour gagner du temps machine (très cher).
    A décharge, il faut dire que la réentrance n'existait pas, les méthodes de structuration non plus, quant aux problèmes de maintenance, il n'y en avait pas encore tellement puisqu'il s'agissait des premiers programmes !
    Puis est venu COBOL et des instructions transposées équivalentes.
    Bon c'est un héritage révolu d'un temps ou parce que l'on travaillait avec des cartes perforées 'paquettées élastiquement', on reconnaissait un informaticien confirmé à sa dextérité au tir à l'élastique !
    On peut donc encore code ALTER, mais merci de le faire sur cartes perforées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pb commande alter table
    Par zut94 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 19/02/2010, 09h21
  2. Création de plusieurs FK en une seule commande ALTER
    Par Lawyer666 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/06/2007, 20h01
  3. Réponses: 2
    Dernier message: 03/03/2006, 14h41
  4. Réponses: 5
    Dernier message: 02/03/2006, 10h38
  5. Commande alter sous Oracle
    Par samiraboutra dans le forum Oracle
    Réponses: 5
    Dernier message: 14/10/2005, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo