Discussion:Coccinelle (logiciel)

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Relecture Master TIIR[modifier le code]

Bonjour je suis Damien, l'un des relecteurs de votre sujet. Je souhaite tout d'abord vous féliciter pour cet article. M'étant aussi prêté à cet exercice, je comprends les difficultés et la charge de travail nécessaires à sa rédaction. Je vais vous proposer quelques pistes d'éventuelles améliorations. Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]

Bonjour Damien, merci pour votre relecture et vos propositions d'améliorations, je tâcherai de les étudier, d'y répondre et de les appliquer le cas échéant avant la semaine prochaine. --Samir86 TIIR (discuter) 4 février 2020 à 14:11 (CET)[répondre]


Sur la Forme[modifier le code]

Citations[modifier le code]

  1. Je pense qu’il serait préférable de préciser la page 74 concernant la référence 3. Chou 2006. Cela permettrait au lecteur de trouver plus rapidement la source. Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]
Oui effectivement, j'ai corrigé cette référence. --Samir86 TIIR (discuter) 6 février 2020 à 10:42 (CET)[répondre]
  1. La référence numéro 34. Palix 2010 ne pointe pas vers un ouvrage de la bibliographie. Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]
C'est corrigé, merci --Samir86 TIIR (discuter) 6 février 2020 à 10:42 (CET)[répondre]
  1. Je pense qu’il manque les pages concernant les références 7., 8., 12., 13., 14., 17., 19., 22., 25., 26., 27., 29., 34., 41. Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]
En effet, il ne s'agit pas de renvois vers des pages exactes, mais des références vers des articles complets, ou des sites web. --Samir86 TIIR (discuter) 6 février 2020 à 10:42 (CET)[répondre]
  1. L’utilisation de la balise Document utilisé pour la rédaction de l’article permettrait de mieux discerner les sources utilisées pour la rédaction de l’article des sources vous ayant permis de comprendre le logiciel Coccinelle. Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]
Par manque de temps, je n'ai pas utilisé cette balise et les références pointent normalement vers les sources utilisées. --Samir86 TIIR (discuter) 6 février 2020 à 10:42 (CET)[répondre]

Texte en anglais[modifier le code]

  1. L’image illustrant le moteur de transformation Coccinelle contient du texte en anglais. Je pense qu’il serait préférable qu’il soit traduit en français afin que les lecteurs non-anglophones puissent comprendre celle-ci. Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]
J'ai traduit ce schéma en français et simplifié aussi au passage, d'ailleurs je l'ai changé de section en l'intégrant à la première: Caractéristiques de l'outil Coccinelle. Je vais aussi l'expliquer plus en détails. --Samir86 TIIR (discuter) 7 février 2020 à 17:19 (CET)[répondre]
  1. Les trois tableaux « Result of Android 2.1 », « Result of Android 3.0 », « Result of Android 4.0 » contiennent du texte en anglais. Je pense qu’il serait préférable qu’il soit traduit en français afin de permettre au lecteur non-anglophones de les comprendre. Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]
Je suis d'accord, j'ai traduit les tableaux en français. --Samir86 TIIR (discuter) 6 février 2020 à 14:22 (CET)[répondre]

Phrase à reformuler[modifier le code]

Le mot « automatiquement » est répété deux fois dans la phrase « Dans des nombreux cas, ils étaient capables d'utiliser les capacités de transformation de programme du moteur Coccinelle pour automatiquement corriger automatiquement ces bugs. ». Daamaad (discuter) 3 février 2020 à 22:56 (CET)[répondre]

C'est corrigé, merci. --Samir86 TIIR (discuter) 6 février 2020 à 10:56 (CET)[répondre]

Sur le Fond[modifier le code]

Plan[modifier le code]

Le plan que vous proposez est clair et m’a beaucoup aidé à comprendre la démarche qui a amené à la création du logiciel Coccinelle. Je me permets toutefois de vous faire quelques suggestions concernant celui-ci afin de vous apporter d’éventuelles pistes d’améliorations. Selon la convention de plan de Wikipédia, les sections sont organisées en fonction de ce qui risque d’intéresser le plus de lecteur. De ce fait, la première section devrait définir ce qu’est le logiciel Coccinelle car c’est ce que le lecteur cherche à comprendre rapidement. De la même manière, la section consacrée à l’origine du projet est intéressante mais devrait se trouver à la fin de l’article car elle est susceptible de toucher un public moins large. Le plan serait donc le suivant :

   1 Qu’est-ce que Coccinelle
   2 Semantic patches (SmPL)
       2.1 Les buts de ce nouveau langage
       2.2 Syntaxe de SmPL
       2.3 Exemple d’autres structures de transformation de programmes
   3 Évolutions de l'outil Coccinelle
       3.1 Introduction des langages de script
       3.2 Sécurité et détection de vulnérabilités par Coccinelle
           3.2.1 OpenSSL
           3.2.2 CERT C Secure Coding Standard
           3.2.3 Recherche de vulnérabilités sur Android
       3.3 Évolutions des performances
   4 Origines du projet Coccinelle
   5 Les évolutions collatérales
       5.1 Le problème des évolutions collatérales
       5.2 Les divers aspects du processus des évolutions collatérales
       5.3 Les précédentes tentatives de résolution
   6 Impact sur Linux
       6.1 Augmentation des commits Coccinelle
       6.2 Catégories d'utilisateurs
   7 Références
   8 Bibliographie
       8.1 Recherches sur l’outil Coccinelle
       8.2 Les autres outils de transformation de programmes
       8.3 Autres sources scientifiques
       8.4 Liens externes

Je pense que les résumés et les introductions des articles « Coccinelle: reducing the barriers to modularization in a large C code base » et « Coccinelle: reducing the barriers to modularization in a large C code base » permettraient de développer la section « Qu’est-ce que Coccinelle » Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]

Merci pour la proposition de plan, j'ai suivi partiellement votre conseil en écrivant une première section sur les caractéristiques de l'outil Coccinelle en suivant la source que vous me suggérez. Par contre j'ai gardé le fil conducteur temporel sur le reste du plan:
   1 Caractéristiques de l'outil Coccinelle
   2 Origines du projet Coccinelle
   3 Les évolutions collatérales
       3.1 Le problème des évolutions collatérales
       3.2 Les divers aspects du processus des évolutions collatérales
       3.3 Les précédentes tentatives de résolution
   4 Semantic patches (SmPL)
       4.1 Les buts de ce nouveau langage
       4.2 Syntaxe de SmPL
       4.3 Exemple d’autres structures de transformation de programmes
   5 Évolutions de l'outil Coccinelle
       5.1 Introduction des langages de script
       5.2 Sécurité et détection de vulnérabilités par Coccinelle
           5.2.1 OpenSSL
           5.2.2 CERT C Secure Coding Standard
           5.2.3 Recherche de vulnérabilités sur Android
       5.3 Évolutions des performances
   6 Impact sur Linux
       6.1 Augmentation des commits Coccinelle
       6.2 Catégories d'utilisateurs
   7 Références
   8 Bibliographie
       8.1 Recherches sur l’outil Coccinelle
       8.2 Les autres outils de transformation de programmes
       8.3 Autres sources scientifiques
       8.4 Liens externes
J'ai également repris le schéma du moteur de transformation Coccinelle avec sa description que j'ai rajouté sur la 1ère section. L'article est ainsi plus claire et réponds rapidement au lecteur sur les caractéristiques de Coccinelle. --Samir86 TIIR (discuter) 7 février 2020 à 17:13 (CET)[répondre]

Définition[modifier le code]

Je pense qu’il serait pertinent de définir de manière concise ce qu’est la vulnérabilité use-after-free dans le phrase : « Les bugs qui dépendent principalement de la structure du code, comme la vulnérabilité use-after-free [...] ». Daamaad (discuter) 3 février 2020 à 19:57 (CET)[répondre]

C'est fait. --Samir86 TIIR (discuter) 7 février 2020 à 17:36 (CET)[répondre]

Moreau Maxime[modifier le code]

Bonjour, je suis un de vos relecteurs. Je vous félicite pour votre travail ayant moi même était confronté à la difficulté de cette tâche.

Bonjour Maxime, merci pour votre relecture, j'essaierai d'étudier et répondre à vos suggestions intéressantes avant notre rencontre la semaine prochaine. --Samir86 TIIR (discuter) 4 février 2020 à 14:11 (CET)[répondre]

Voici les quelques remarques que je vous fait parvenir:

A propos du plan[modifier le code]

  1. La partie "évolution collatéral" devrait à mon avis se retrouver après celle sur "SmPL". Ce sont des faits intéressants, mais plus anecdotique qu’un langage créé spécifiquement pour le projet.
Le problèmes des évolutions collatérales du noyau Linux est la raison pour laquelle les chercheurs de l'équipe Whisper ont commencé à développé l'outil Coccinelle et l'ont ensuite introduit à la communauté des développeurs Linux. Il me semblait ainsi important d'aborder ce thème avant le langage SmPL qui est finalement la solution apportée à ce problème. --Samir86 TIIR (discuter) 6 février 2020 à 11:25 (CET)[répondre]
  1. A contrario la partie sur "l'évolution de l’outil coccinelle" semble s’étendre plus sur les utilisations possible de l’outil, et semble donc être intéressé plus de monde devrait donc être plus haut a mon sens, j’émets malgré tout quelque doutes s'il es plus important que "SmPL"
J'ai pris le partie d'aborder cet article Wikipedia de manière temporel en suivant l'évolution de Coccinelle en 3 étapes
Identification des problèmes des évolutions collatérales.
Solution apportée par Lawall et coll.
Avec le développement du langage SmPL (en langage C) qui est finalement le prémice de l'outil Coccinelle.
Évolutions de l'outil Coccinelle
Avec l'introduction de nouveaux langage (Python, OCaml) et son utilisation par la communauté Linux.

--Samir86 TIIR (discuter) 6 février 2020 à 11:25 (CET)[répondre]

  1. Il manque, je pense, une partie qui rentre plus en détail sur Coccinelle. Je m'explique, après lecture de votre article j'ai eu l'impression d'avoir une bonne vue d'ensemble sur SmPL et quelques utilisations "alternatives" de Coccinelle (Comme la détection de vulnérabilité) mais d'être toujours un peu dans le flou a propos de l'outil lui même
J'ai identifié cet état de fait au début de mes recherches avant de vite me rendre compte d'une chose: SmPL = Coccinelle. Je m'explique, dans les premiers articles de recherches sorties sur le sujet (entre 2006 et 2009), Lawall et coll. utilisent surtout le terme SmPL pour leurs projets. A partir de 2010, c'est le terme Coccinelle qui est adopté et utilisé, voir cette source par exemple: (en) Julia Lawall, René Rydhof Hansen, Nicolas Palix et Gilles Muller, « Improving the Security of Infrastructure Software using Coccinelle », ERCIM News, vol. 83,‎ , p. 54 (ISSN 0926-4981). En effet, l'outil a évolué, avec l'apparition de nouveaux langages en plus du langage SmPL original. D'ailleurs la première version de coccinelle sur github (coccinelle-0.1) est sortie le 3 octobre 2010.

--Samir86 TIIR (discuter) 6 février 2020 à 11:25 (CET)[répondre]

Sur vos conseils et remarques, j'ai écrit une nouvelle section en début d'article: Caractéristiques de l'outil Coccinelle pour répondre rapidement aux questions principales de l'utilité de l'outil en lui-même. --Samir86 TIIR (discuter) 7 février 2020 à 17:17 (CET)[répondre]

A propos du contenu[modifier le code]

  1. “SmPL est l’acronyme pour “Semantic Patch Language”, il se prononce “sample” en danois, et “simple” en Français.” Il me paraît peu utile de préciser la la prononciation danoise sur un article Français.
SmPL est un projet franco-danois, mais effectivement pas besoin de spécifier la prononciation danoise, je corrige. --Samir86 TIIR (discuter) 6 février 2020 à 14:01 (CET)[répondre]
  1. Pour le premier paragraphe de la partie "Les buts de ce nouveau langage" la dernière phrase me semble être plus utile au début du paragraphe. Savoir qu’on parle d’exemples et pourquoi on en parle en premier semble donnés un propos plus clair.
J'introduis cette section avec les outils qui étaient utilisés par la communauté des développeurs Linux avant l'apparition du langage SmPL, toujours en suivant la temporalité de l'évolution du projet Coccinelle comme évoqué plus haut dans mes réponses. --Samir86 TIIR (discuter) 6 février 2020 à 14:41 (CET)[répondre]
  1. “La communauté des programmeurs Linux étant habitués à l'échange, la lecture et la manipulation de patchs qui fournissent un rapport des changements précédemment exécutés, Padioleau, Lawall et Muller ont axé la syntaxe de SmPL sur la notation de fichier de patch.” Bien que cette phrase soit compréhensible elle me paraît lourde et mériterais probablement d’être formuler en 2 phrases distinctes.
Je suis d'accord, j'ai séparé cette phrase en 2 autres phrases. --Samir86 TIIR (discuter) 6 février 2020 à 14:01 (CET)[répondre]
  1. “Une approche semblable a été récemment entreprise dans le système Minix14, bien qu’elle soit plus centrée sur la conception de systèmes minimaux pour des objectifs de fiabilité qu'en réutilisant du logiciel hérité.” Il serais bon de préciser la date, en effet d'ici quelques années ce ne seras plus récent.
Oui, surtout que l'article en référence date de 2006, j'ai corrigé. --Samir86 TIIR (discuter) 6 février 2020 à 14:01 (CET)[répondre]