L’instruction goto (littéralement va à) est une instruction présente dans de nombreux langages de programmation. Elle est utilisée pour réaliser des sauts inconditionnels dans un programme, changeant ainsi le flot de contrôle naturel du programme qui consiste à aller exécuter l'instruction suivante. L’exécution est alors envoyée à une autre instruction repérée par une étiquette ou label, qui est soit un numéro de ligne, soit une étiquette déclarée, selon le langage.

Property Value
dbo:abstract
  • L’instruction goto (littéralement va à) est une instruction présente dans de nombreux langages de programmation. Elle est utilisée pour réaliser des sauts inconditionnels dans un programme, changeant ainsi le flot de contrôle naturel du programme qui consiste à aller exécuter l'instruction suivante. L’exécution est alors envoyée à une autre instruction repérée par une étiquette ou label, qui est soit un numéro de ligne, soit une étiquette déclarée, selon le langage. L’instruction goto, directement héritée des instructions de saut des langages machines, était nécessaire dans les langages primitifs (Fortran pré-90, BASIC) comme instruction de base permettant de réaliser des boucles et autres structures de contrôles. Depuis la révolution de la programmation structurée des années 1970, l’instruction goto n’est plus guère appréciée des programmeurs modernes, car elle rend souvent les programmes plus difficiles à comprendre et à maintenir (on parle dans ce cas de programmation spaghetti). On utilise plus généralement des structures comme les conditionnelles (if .. then .. else ..) ou les boucles (for, while, etc.) qui font partie intégrante de tous les langages de programmation impératifs modernes. Dans certains langages, d’autres instructions effectuent des sauts inconditionnels et remplacent quelques usages de l’instruction goto. C’est le cas des instructions comme continue ou break, que l’on trouve dans les langages dérivés du C et qui ont l'avantage de ne pas détourner le flot naturel de contrôle vers une instruction qui se trouve plus loin dans l'ordre textuel du programme, et des exceptions. On peut obtenir un comportement similaire avec le call/cc de Scheme, ou catch...throw en Ruby et Common Lisp (sans rapport avec les exceptions dans ces deux langages). Edsger Dijkstra et Niklaus Wirth ont défendu l'idée selon laquelle l'instruction goto ne peut que mener à du code illisible. D'autres, comme Linus Torvalds ou (en), ont fait remarquer que même si elle incite à produire du code spaghetti, l'instruction goto peut être appréciable et rendre au contraire le code plus lisible, lorsqu'elle est employée à bon escient. D'ailleurs, dans leur livre (en), Kernighan et (en) indiquent comment écrire du code structuré en Fortran et en PL/I, tout en faisant intensivement appel à l'instruction goto. Par ailleurs, l'usage de goto peut être rendu plus clair avec des étiquettes suffisamment descriptives, ce qui est possible lorsque les étiquettes sont alphanumériques, comme en C, mais ce qui n'est pas le cas en BASIC (standard ANSI X3.113), Pascal (standard ISO 7185) ou en Fortran (toutes les versions du standard), qui ont des étiquettes numériques. (fr)
  • L’instruction goto (littéralement va à) est une instruction présente dans de nombreux langages de programmation. Elle est utilisée pour réaliser des sauts inconditionnels dans un programme, changeant ainsi le flot de contrôle naturel du programme qui consiste à aller exécuter l'instruction suivante. L’exécution est alors envoyée à une autre instruction repérée par une étiquette ou label, qui est soit un numéro de ligne, soit une étiquette déclarée, selon le langage. L’instruction goto, directement héritée des instructions de saut des langages machines, était nécessaire dans les langages primitifs (Fortran pré-90, BASIC) comme instruction de base permettant de réaliser des boucles et autres structures de contrôles. Depuis la révolution de la programmation structurée des années 1970, l’instruction goto n’est plus guère appréciée des programmeurs modernes, car elle rend souvent les programmes plus difficiles à comprendre et à maintenir (on parle dans ce cas de programmation spaghetti). On utilise plus généralement des structures comme les conditionnelles (if .. then .. else ..) ou les boucles (for, while, etc.) qui font partie intégrante de tous les langages de programmation impératifs modernes. Dans certains langages, d’autres instructions effectuent des sauts inconditionnels et remplacent quelques usages de l’instruction goto. C’est le cas des instructions comme continue ou break, que l’on trouve dans les langages dérivés du C et qui ont l'avantage de ne pas détourner le flot naturel de contrôle vers une instruction qui se trouve plus loin dans l'ordre textuel du programme, et des exceptions. On peut obtenir un comportement similaire avec le call/cc de Scheme, ou catch...throw en Ruby et Common Lisp (sans rapport avec les exceptions dans ces deux langages). Edsger Dijkstra et Niklaus Wirth ont défendu l'idée selon laquelle l'instruction goto ne peut que mener à du code illisible. D'autres, comme Linus Torvalds ou (en), ont fait remarquer que même si elle incite à produire du code spaghetti, l'instruction goto peut être appréciable et rendre au contraire le code plus lisible, lorsqu'elle est employée à bon escient. D'ailleurs, dans leur livre (en), Kernighan et (en) indiquent comment écrire du code structuré en Fortran et en PL/I, tout en faisant intensivement appel à l'instruction goto. Par ailleurs, l'usage de goto peut être rendu plus clair avec des étiquettes suffisamment descriptives, ce qui est possible lorsque les étiquettes sont alphanumériques, comme en C, mais ce qui n'est pas le cas en BASIC (standard ANSI X3.113), Pascal (standard ISO 7185) ou en Fortran (toutes les versions du standard), qui ont des étiquettes numériques. (fr)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 314779 (xsd:integer)
dbo:wikiPageLength
  • 13902 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 182677442 (xsd:integer)
dbo:wikiPageWikiLink
prop-fr:année
  • 1988 (xsd:integer)
prop-fr:art
  • Goto (fr)
  • Goto (fr)
prop-fr:date
  • mars 1968 (fr)
  • mars 1968 (fr)
prop-fr:doi
  • 10.114500 (xsd:double)
prop-fr:fr
  • Phillip James Plauger (fr)
  • Robert M. Love (fr)
  • théorème de Böhm-Jacopini (fr)
  • Phillip James Plauger (fr)
  • Robert M. Love (fr)
  • théorème de Böhm-Jacopini (fr)
prop-fr:journal
  • Journal of the ACM (fr)
  • Journal of the ACM (fr)
prop-fr:lang
  • en (fr)
  • en (fr)
prop-fr:langue
  • en (fr)
  • en (fr)
prop-fr:lienAuteur
  • Edsger Dijkstra (fr)
  • Edsger Dijkstra (fr)
prop-fr:nom
  • Dijkstra (fr)
  • Ramshaw (fr)
  • Dijkstra (fr)
  • Ramshaw (fr)
prop-fr:numéro
  • 3 (xsd:integer)
  • 4 (xsd:integer)
prop-fr:pages
  • 147 (xsd:integer)
  • 893 (xsd:integer)
prop-fr:prénom
  • L. (fr)
  • Edsger W. (fr)
  • L. (fr)
  • Edsger W. (fr)
prop-fr:texte
  • Robert Love (fr)
  • Plauger (fr)
  • Robert Love (fr)
  • Plauger (fr)
prop-fr:titre
  • Eliminating go to's while preserving program structure (fr)
  • Letters to the editor: Go to statement considered harmful (fr)
  • Eliminating go to's while preserving program structure (fr)
  • Letters to the editor: Go to statement considered harmful (fr)
prop-fr:trad
  • Robert Love (fr)
  • P. J. Plauger (fr)
  • Structured program theorem (fr)
  • The Elements of Programming Style (fr)
  • Robert Love (fr)
  • P. J. Plauger (fr)
  • Structured program theorem (fr)
  • The Elements of Programming Style (fr)
prop-fr:url
  • https://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF|journal=Communications of the ACM (fr)
  • https://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF|journal=Communications of the ACM (fr)
prop-fr:volume
  • 11 (xsd:integer)
  • 35 (xsd:integer)
prop-fr:wikiPageUsesTemplate
dct:subject
rdfs:comment
  • L’instruction goto (littéralement va à) est une instruction présente dans de nombreux langages de programmation. Elle est utilisée pour réaliser des sauts inconditionnels dans un programme, changeant ainsi le flot de contrôle naturel du programme qui consiste à aller exécuter l'instruction suivante. L’exécution est alors envoyée à une autre instruction repérée par une étiquette ou label, qui est soit un numéro de ligne, soit une étiquette déclarée, selon le langage. (fr)
  • L’instruction goto (littéralement va à) est une instruction présente dans de nombreux langages de programmation. Elle est utilisée pour réaliser des sauts inconditionnels dans un programme, changeant ainsi le flot de contrôle naturel du programme qui consiste à aller exécuter l'instruction suivante. L’exécution est alors envoyée à une autre instruction repérée par une étiquette ou label, qui est soit un numéro de ligne, soit une étiquette déclarée, selon le langage. (fr)
rdfs:label
  • GOTO (ca)
  • GOTO (es)
  • GOTO (it)
  • Goto (ru)
  • Goto (informatique) (fr)
  • Goto文 (ja)
  • Spronginstructie (nl)
  • Sprunganweisung (de)
  • GOTO (ca)
  • GOTO (es)
  • GOTO (it)
  • Goto (ru)
  • Goto (informatique) (fr)
  • Goto文 (ja)
  • Spronginstructie (nl)
  • Sprunganweisung (de)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:namedAfter of
is dbo:wikiPageDisambiguates of
is dbo:wikiPageWikiLink of
is oa:hasTarget of
is foaf:primaryTopic of