Auteur Sujet: Programmation : Le GOTO c'est le maaaaaaal  (Lu 50883 fois)

0 Membres et 1 Invité sur ce sujet

EMegamanu

  • Abonné Orange Fibre
  • *
  • Messages: 416
  • FTTH sur Villeurbanne et Oullins (69)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #24 le: 06 mars 2015 à 14:04:42 »
Windev a un gros avantage malgré tout en pratique : offre d'embauche avec Windev écrit dedans ? => tu passes à la suivante

Et des pubs à accrocher sur la porte des toilettes des hommes.

GOTO: sortie

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #25 le: 06 mars 2015 à 19:33:55 »
encore heureux ;) C# et les autres langages de plus haut niveau que C permettent dans la plus part des cas d'éviter l'emploi de goto.

Le C est un peu a part. On fait des trucs très bas niveau avec et souvent utiliser un goto peut-être très pratique et concis (pour sortir d'une imbrication de "if" notamment ).
Qu'est-ce que tu appelles "bas niveau"?

EMegamanu

  • Abonné Orange Fibre
  • *
  • Messages: 416
  • FTTH sur Villeurbanne et Oullins (69)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #26 le: 06 mars 2015 à 19:39:53 »
Il entend bas niveau dans le sens abstraction :
- gestion manuelle de la mémoire du tas vs les garbage collector du C# ou du Java,
- l'accès à des primitives systèmes dans un code machine vs l'utilisation d'un code binaire intermédiaire qui sera interprété par une machine virtuelle,
- le fait que le C et le C++ sont davantage utilisés dans de la recherche de performance (jeux...) ou des pilotes vs une facilité de l'environnement de programmation pour le développeur, etc.

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #27 le: 06 mars 2015 à 19:47:21 »
- le fait que le C et le C++ sont davantage utilisés dans de la recherche de performance (jeux...) ou des pilotes vs une facilité de l'environnement de programmation pour le développeur, etc.
Pas d'accord du tout!

Il y a beaucoup de choses pas du tout orienté performance en C, à commencer par les chaines terminées par NUL, les E/S, etc.

Le C n'est pas du tout un vrai bon langage de bas niveau. Ada est beaucoup plus orienté bas niveau.

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #28 le: 06 mars 2015 à 19:52:06 »
J'aime bien cette approche donnée en exemple en Ada, langage utilisé en aéronautique et spatial sur de nombreux systèmes embarqués. Ada est normalement considéré comme exemplaire en terme de "propreté" à l'écriture et l'exécution (avec les débordements qu'on connait).
Comme Ariane qui fait boum?

EMegamanu

  • Abonné Orange Fibre
  • *
  • Messages: 416
  • FTTH sur Villeurbanne et Oullins (69)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #29 le: 06 mars 2015 à 19:58:56 »
Qu'est ce que ça à avoir avec la performance le fait que les chaînes soient terminées par NULL ? C'est du fait seul que le type string n'existe pas en en C ANSI. A la place on fait appel à la logique des pointeurs.

Pour les E/S il y a plusieurs façons de faire, soit en passant par les bibliothèques C, soit en passant directement par les primitives systèmes... Et quoi qu'il en soit, à moins de programmer au niveau même du noyau j'imagine, il y aura toujours un problème de performances vu qu'il s'agit d'interruptions système.

Il n'y avait nulle référence à ADA dans son post. La comparaison était par rapport aux langages plus haut niveau qu'on a cité tous deux.

Il y a évidemment plus bas niveau que le C... Tout ce qui est programmation en assembleur par exemple. Mais çà n'occulte pas qu'on est en dessous du C# ou Java.

En tout cas, dans un contexte de très faible mémoire ou de temps réel j'ai pas souvenir d'avoir vu ces derniers privilégiés au C.

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #30 le: 06 mars 2015 à 20:26:11 »
Qu'est ce que ça à avoir avec la performance le fait que les chaînes soient terminées par NULL ? C'est du fait seul que le type string n'existe pas en en C ANSI.
Si, il y a plusieurs types string : char[n] et char* (et les mêmes en const).

A la place on fait appel à la logique des pointeurs.

Pour les E/S il y a plusieurs façons de faire, soit en passant par les bibliothèques C, soit en passant directement par les primitives systèmes... Et quoi qu'il en soit, à moins de programmer au niveau même du noyau j'imagine, il y aura toujours un problème de performances vu qu'il s'agit d'interruptions système.
Je parles de printf et co.

Il n'y avait nulle référence à ADA dans son post.
Et alors?

La comparaison était par rapport aux langages plus haut niveau qu'on a cité tous deux.

Il y a évidemment plus bas niveau que le C... Tout ce qui est programmation en assembleur par exemple. Mais çà n'occulte pas qu'on est en dessous du C# ou Java.
C'est quoi ça être en dessous?

En tout cas, dans un contexte de très faible mémoire ou de temps réel j'ai pas souvenir d'avoir vu ces derniers privilégiés au C.
Justement, il y a un dialecte de Java conçu spécifiquement pour un contexte de mémoire très très faible avec des contraintes temps réel.

Cochonou

  • Abonné Bbox fibre
  • *
  • Messages: 1 359
  • FTTH 2 Gb/s sur Saint-Maur-des-Fossés (94)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #31 le: 06 mars 2015 à 20:35:02 »
Ariane 501 qui fait boum, c'est plus un échec des procédures de validation qu'autre chose...
Que ce bug ait existé, c'est une chose... qu'il n'ait pas été détecté avant le vol du premier FM, c'est là où ça craint.

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 481
  • Malissard (26)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #32 le: 06 mars 2015 à 20:36:13 »
Comme Ariane qui fait boum?

Par exemple :)

corrector

  • Invité
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #33 le: 06 mars 2015 à 20:45:53 »
Ariane 501 qui fait boum, c'est plus un échec des procédures de validation qu'autre chose...
Que ce bug ait existé, c'est une chose... qu'il n'ait pas été détecté avant le vol du premier FM, c'est là où ça craint.
C'est une exception Ada "castée" (réinterprétée) à la C en valeur numérique.

C'est une cascade de fautes, de bugs, d'imbécillités.

C'est aussi un code absolument abject.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #34 le: 06 mars 2015 à 21:00:41 »
On parle de 'bas niveau' pour désigner un langage qui est "proche" du cpu, c'est a dire proche de l'assembleur. Par 'proche' on entend la complexité qu'il faut pour le compiler et le traduire en assembleur et le faible niveau d'abstraction qu'il offre.

A l'inverse on parle de 'haut niveau' pour les langages qui sont 'loin' du cpu, qui ont un haut niveau d'abstraction et sont souvent interprétés au lieu d'être compilés et dont la compilation, quand elle a lieu, est souvent complexe. D'ailleurs en pratique on compile souvent un langage de haut niveau vers un langage de bas niveau qu'on compile ensuite en assembleur pour générer du code exécutable. Cela permet de simplifier la portabilité et les optimisations: en générant du C on peut après le compiler et l'optimiser avec les outils propres a chaque OS et au passage, on profite des décennies de progrès faites sur la compilation du C.

Il fréquent d'ailleurs dans le code C généré par les compilateurs (et les "transpileurs") de haut niveau de générer énormèment de goto.

Cochonou

  • Abonné Bbox fibre
  • *
  • Messages: 1 359
  • FTTH 2 Gb/s sur Saint-Maur-des-Fossés (94)
Programmation : Le GOTO c'est le maaaaaaal
« Réponse #35 le: 06 mars 2015 à 21:05:20 »
Citer
C'est une exception Ada "castée" (réinterprétée) à la C en valeur numérique.
C'est une cascade de fautes, de bugs, d'imbécillités.
C'est aussi un code absolument abject.

C'est surtout un bug qui aurait été détecté si les SRI (systèmes de référence inertiels) avaient été validés avec la trajectoire simulée d'Ariane 5.
Ou si les SRI avaient été testés en boucle fermée.