Archive Liste Typographie
Message : Re: [HS Fortran 2] Pan sur le bec !

(BERTRAND Joël) - Jeudi 29 Novembre 2001
Navigation par date [ Précédent    Index    Suivant ]
Navigation par sujet [ Précédent    Index    Suivant ]

Subject:    Re: [HS Fortran 2] Pan sur le bec !
Date:    Thu, 29 Nov 2001 16:29:09 +0100
From:    BERTRAND Joël <bertrand@xxxxxxx>

Michel Houdé wrote:

[Philippe Deschamp]

la tradition parvenue à moi dit qu'au lieu de
  DO 123 I = 1, 10
qui est un début de boucle se terminant à l'étiquette 123 et devant
être exécutée 10 fois de suite, quelqu'un à la NASA écrivit
  DO 123 I = 1. 10
qui est strictement la même chose que
  DO123I = 1.10

(affectation de la valeur flottante 1.10 à la variable DO123I,
déclarée par défaut), ce qui a pour résultat que le corps de la
« boucle » n'est exécuté qu'une fois. Si I ne servait à rien d'autre
qu'à « compter les tours », ça peut ne pas se remarquer.


[Joël BERTRAND]

   Vive le format fixe du Fortran ! Cependant, par défaut, une telle
variable est déclarée à la volée en « integer », et le code contient

une

ligne
123   CONTINUE
jamais appelée. Deux raisons pour que le compilateur insulte l'être
humain ;-)


[Michel Houdé]
Sûrement pas ! Moi, quand j'ai appris le FORTRAN en 1969, ce qui semble
correspondre à l'époque évoquée, les variables commençant par
I,J,K,L,M,N étaient, par défaut, considérées comme entières (INTEGER).
Toutes les autres, était, toujours par défaut, réelles (REAL).

Je sais, mes doigts ont fourché (faute au manque de sommeil, certainement...).


Quant au compilateur, sont rôle se bornait à convertir le code source en
code objet. Les notions d'optimisation, de réarrangement, n'existaient
pas.
Une instruction CONTINUE, parfaitement valide, n'avait aucune raison
d'attirer l'attention d'un compilateur, d'autant qu'elle ne faisait
rien, en fait, et ne servait que de support d'étiquette.
D'ailleurs, vu les capacités des machines de l'époque, fallait pas lui
en demander plus, au compilateur.

Ouaips, là, ça dépend du système. J'ai bossé sur un truc immonde, transistorisé (avec 64 Ko de mémoire et 100 kHz de fréquence d'horloge) et comme seul terminal une imprimante et un lecteur de carte en code 29. J'ai dû maintenir un bout de code de 200 000 lignes (un C35 pour transporter les sources du programme ;-) ) et si le compilateur ne savait pas optimiser le code, il était suffisament évolué pour m'insulter sur les étiquettes jamais appelées.


L'anecdote citée par Philippe est donc tout à fait plausible.

   Oui, oui, j'avais compris tout à fait autre chose...


Il est toujours difficile d'examiner le passé avec des lunettes
d'aujourd'hui. 8:)

Quelque fois, avec l'outil informatique, j'ai l'impression de vivre dans le passé...


Michel Houdé
Compiègne

PS: le plus dur, c'était de perforer les cartes.

Mais non, mais non... Un éditeur TECO, une perfo en code 29, et une pince à tiercé pour les corrections rapides... Le plus dur était de ne pas oublier de donner un grand coup de feutre sur les tranches des cartes et de transporter lesdites cartes de la salle d'édition au calculateur...

   Cordialement,

   JKB, qui retourne admirer son VAX mettre son VMS à niveau...