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==--