Re: Boucle for

Jean-Pierre Rosen via Ada-france <[email protected]> Wed, 10 Aug 2022 08:08:17 +0200
Newsgroups gmane.comp.lang.ada.france
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============7284596101465432860==
Content-Type: multipart/alternative;
 boundary="------------JE9YZ3o4i7l6B2tKecD57R0o"
Content-Language: fr

This is a multi-part message in MIME format.
--------------JE9YZ3o4i7l6B2tKecD57R0o
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Le 09/08/2022 à 20:13, Thomas De Contes a écrit :
> À la fac on m'avait appris qu'il ne fallait jamais utiliser "goto", parce que ça donne trop rapidement des algorithmes impossibles à prouver, même en Ada où il est fortement encadré.
>
> (J'ai un doute : peut-être qu'on m'avait dit de ne jamais l'utiliser même en Ada par principe, même si en Ada le cadre évite de faire des algorithmes impossibles à prouver.)

La vieille polémique du GOTO date de la fin du FORTRAN IV (où on 
écrivait tout en majuscules!), quand les nouveaux langages tels que 
Pascal prônaient des instructions structurées (if-then-else, while), 
absentes du Fortran de l'époque. Mais pour certains programmeurs 
habitués au vieux Fortran, c'était une révolution.

De nos jours, les instructions structurées sont dans tous les langages, 
et peu de jeunes (et moins jeunes) programmeurs ont jamais vu un Goto, 
donc il n'y a pas lieu de polémiquer.

Pour moi, le problème du Goto est qu'il dit qu'on va à un endroit, mais 
pas /pourquoi/ on va à cet endroit: le contenu informatif est très 
faible. De ce point de vue, un "goto Continue" dit bien ce qu'il fait.

> Est-ce que tu l'utilises couramment ?

En Ada, je ne l'ai utilisé qu'une seule fois, mais c'était bien 
justifié: une machine état/transition qui "sautait" d'état en état. Bien 
entendu, chaque étiquette était le nom d'un état. Dans ce cas, le Goto 
était la traduction la plus directe de la conception.

-- 
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52
https://www.adalog.fr
--------------JE9YZ3o4i7l6B2tKecD57R0o
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Le 09/08/2022 à 20:13, Thomas De Contes
      a écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:[email protected]">
      <pre class="moz-quote-pre" wrap="">À la fac on m'avait appris qu'il ne fallait jamais utiliser "goto", parce que ça donne trop rapidement des algorithmes impossibles à prouver, même en Ada où il est fortement encadré.

(J'ai un doute : peut-être qu'on m'avait dit de ne jamais l'utiliser même en Ada par principe, même si en Ada le cadre évite de faire des algorithmes impossibles à prouver.)</pre>
    </blockquote>
    <p>La vieille polémique du GOTO date de la fin du FORTRAN IV (où on
      écrivait tout en majuscules!), quand les nouveaux langages tels
      que Pascal prônaient des instructions structurées (if-then-else,
      while), absentes du Fortran de l'époque. Mais pour certains
      programmeurs habitués au vieux Fortran, c'était une révolution.</p>
    <p>De nos jours, les instructions structurées sont dans tous les
      langages, et peu de jeunes (et moins jeunes) programmeurs ont
      jamais vu un Goto, donc il n'y a pas lieu de polémiquer.</p>
    <p>Pour moi, le problème du Goto est qu'il dit qu'on va à un
      endroit, mais pas <i>pourquoi</i> on va à cet endroit: le contenu
      informatif est très faible. De ce point de vue, un "goto Continue"
      dit bien ce qu'il fait.
    </p>
    <blockquote type="cite"
      cite="mid:[email protected]">
      <pre class="moz-quote-pre" wrap="">Est-ce que tu l'utilises couramment ?</pre>
    </blockquote>
    <p>En Ada, je ne l'ai utilisé qu'une seule fois, mais c'était bien
      justifié: une machine état/transition qui "sautait" d'état en
      état. Bien entendu, chaque étiquette était le nom d'un état. Dans
      ce cas, le Goto était la traduction la plus directe de la
      conception.<br>
    </p>
    <div class="moz-signature">-- <br>
      J-P. Rosen<br>
      Adalog<br>
      2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX<br>
      Tel: +33 1 45 29 21 52<br>
      <a class="moz-txt-link-freetext" href="https://www.adalog.fr">https://www.adalog.fr</a>
    </div>
  </body>
</html>

--------------JE9YZ3o4i7l6B2tKecD57R0o--

--===============7284596101465432860==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRhLWZyYW5j
ZSBtYWlsaW5nIGxpc3QKQWRhLWZyYW5jZUBtYWlsLmFkYS1mcmFuY2Uub3JnCmh0dHBzOi8vbWFp
bC5hZGEtZnJhbmNlLm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vYWRhLWZyYW5jZQo=

--===============7284596101465432860==--