Hello!

Inspiré(e) de prendre part à la discussion ? Ou de poser une question ou demander de l’aide ?

Alors bienvenues dans les grands sujets des forums de La Bulle : m’inscrire.

Cette partie du forum n’est pas compatible avec les bloqueurs publicitaires

Félicitations à vous, de préférer les accès payants plutôt que la gratuité par la publicité, c’est honnorable et cohérent de votre part. Malheureusement, l’accès payant par micropaiement (qui serait d’environ 1 cent pour 20 pages consultées) n’est pour l’instant pas encore mis en place, et l’accès gratuit sans publicité, est réservé aux membres actif(ve)s du forum. En attendant, si vous souhaitez poursuivre votre visite chez nous, vous pouvez ajouter le site à votre liste blanche, ou encore mieux, désactiver le bloqueur partout. Pour ajouter le site à votre liste blanche, pour Firefox (similaire pour les autres navigateurs), rendez‑vous en bas à gauche de la fenêtre de votre navigateur, et cliquez sur le menu comme dans l’exemple de l’image ci‑dessous, puis rechargez la page, en appuyant sur F5.

Les standards du C (le langage, ISO/IEC 9899)
Auteur Message
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 19054
Mar 19 Mai 2020 15:48
Message Re: Les standards du C (le langage, ISO/IEC 9899)
Ne fait pas parti d’un standard, mais est utile à mentionner : c-faq.com.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 19054
Ven 22 Mai 2020 08:30
Message Re: Les standards du C (le langage, ISO/IEC 9899)
Voir aussi, sur des ajouts au standard, certains approuvés certains abandonnés : Experimental C standard libraries (cppreference.com).

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 19054
Dim 24 Mai 2020 15:54
Message Re: Les standards du C (le langage, ISO/IEC 9899)
Bien que le C soit un standard de fait, il n’en est pas universel pour autant. L’article ci‑dessous (qui me parle, pour des raisons que je ne décrit pas parce que pas assez de volonté pour ça à l’instant), décrit comment les processeurs actuels sont devenus complexes et gourmands en énergie, comme conséquence de vouloir continuer à donner l’illusion que le modèle sémantique du C est toujours valable alors qu’il ne l’est plus de puis longtemps. Dans le cas de l’exemple décrit dans l’article, la conséquence est même une lacune dans la fiabilité, une lacune malheureusement difficile à éviter.

Voir : C is not a low-level language — your computer is not a fast PDP‑11 (acm.org), David Chisnall, 2018.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 19054
Dim 24 Mai 2020 16:07
Message Re: Les standards du C (le langage, ISO/IEC 9899)
Hibou a écrit : 
[…]

Les ajouts aux C99 depuis le C89 et C90, ne sont pas d’une importance capitale, surtout pour du C généré automatiquement, non‑pas écrit à la main. […]

Le mot clé “ restrict ” pour les “ pointer ”, pourrait être considéré comme capital, si on oubliait qu’il ne s’applique qu’au pointeur auquel il s’applique et non‑pas à ce que design le pointeur. En particulier, restrict ne permet pas d’affirmation sur l’aliasing indirect.

Il n’y a même pas besoin d’aller chercher une indirection lointaine, elle peut être tout prêt : si p1 et p2 désignent deux tableaux et que p2 pointe vers un élément de p1, on a bien un aliasing alors que p1 et p2 sont différents.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 19054
Mar 26 Mai 2020 17:55
Message Re: Les standards du C (le langage, ISO/IEC 9899)
Hibou a écrit : 
Comme le standard du C a des lacunes sémantiques, un ajout au sujet : Defining the Undefinedness of C (illinois.edu).

C’est un PDF daté de 2012 et qui ne fait pas partie du standard.

L’option “ -fsanitize=undefined ”, de Clang, le compilateur C de l’infrastructure LLVM, permet d’aider à déceler les opérations dont le résultat est indéfini d’après le standard du C. L’option produit une version instrumentée du programme, ce n’est pas une détection par de l’analyse statique.

En marge, même si ce n’est pas le sujet, ne pas oublier que le standard POSIX, lui aussi, contient des notes à propos de circonstances dans lesquelles le résultat de certaines opérations doit être considéré comme indéfini.

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet