Partage
  • Partager sur Facebook
  • Partager sur Twitter

Marre de tester les programmes C ? Prouvez les !

Un tutoriel avec Frama-C et son greffon WP

    26 janvier 2017 à 15:21:56

    Bonjour,

    J'ai mis en ligne un tutoriel à cette adresse : https://zestedesavoir.com/tutoriels/885/introduction-a-la-preuve-de-programmes-c-avec-frama-c-et-son-greffon-wp/ . Ce tutoriel concerne la preuve de programme écrits en langage C avec un logiciel qui s'appelle Frama-C. L'idée est d'introduire quelques notions à propos de la preuve, et de les appliquer dans le contexte d'un langage où elle est très utile car le langage nous donne peu de garanties : le C.

    Pour ceux qui n'aiment pas les pages web, j'ai mis sur mon github une version PDF.

    Enjoy !

    Merci et des bisous.

    -
    Edité par Ksass`Peuk 23 mai 2017 à 12:16:56

    • Partager sur Facebook
    • Partager sur Twitter

    Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

      27 janvier 2017 à 18:16:14

      big thumb up pour le tuto !

      • Partager sur Facebook
      • Partager sur Twitter
      First solve the problem. Then, write the code. ~ John Johnson
        27 janvier 2017 à 18:24:41

        Merci @PicoDev ;) .

        • Partager sur Facebook
        • Partager sur Twitter

        Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        Anonyme
          27 janvier 2017 à 18:30:31

          Je garde de côté, ça semble intéressant !
          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2017 à 20:25:49

            Juste un UP pour ceux qui seraient passés à côté mais également pour dire que :

            • une première passe de relecture a été faite et a nettoyé le tutoriel de la plupart des erreurs "bêtes"*,
            • j'ai mis sur mon github une version PDF du tutoriel pour ceux qui sont allergiques aux pages web.

            * ne laissant donc, par définition, que les erreurs intelligentes.

            • Partager sur Facebook
            • Partager sur Twitter

            Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

            Anonyme
              13 février 2017 à 20:27:09

              Ksass`Peuk a écrit:

              • j'ai mis sur mon github une version PDF du tutoriel pour ceux qui sont allergiques aux pages web.

              Merci !

              Je vais suivre le dépot avec attention du coup

              • Partager sur Facebook
              • Partager sur Twitter
                22 mai 2017 à 19:00:58

                Je me permets un UP pour mentionner que le tutoriel est maintenant disponible en version finale (modulo les choses que j'ajouterai à l'avenir bien sûr ;) ). C'est ici que ça se passe :

                https://zestedesavoir.com/tutoriels/885/introduction-a-la-preuve-de-programmes-c-avec-frama-c-et-son-greffon-wp/

                La version PDF ne devrait pas tarder à être également mise à jour.

                -
                Edité par Ksass`Peuk 22 mai 2017 à 19:57:34

                • Partager sur Facebook
                • Partager sur Twitter

                Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                Anonyme
                  22 mai 2017 à 19:51:38

                  Impossible de télécharger le PDF il est introuvable et sur zeste de savoir j'ai le message "Vous n'avez pas les droits suffisants pour accéder à cette page."

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 mai 2017 à 19:53:53

                    Arf, j'ai du faire une connerie dans mon dernier push pour le PDF. Je corrige demain matin.

                    Je viens de piger pour le lien tutoriel je mets à jour les posts.

                    -
                    Edité par Ksass`Peuk 22 mai 2017 à 19:59:52

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                      23 mai 2017 à 20:53:49

                      J'ai mis à jour le post :

                      • les liens tutoriels sont maintenant corrects,
                      • le PDF aussi.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                      Anonyme
                        23 mai 2017 à 21:36:16

                        J'ai survolé hier soir ton introduction. Je ne connaissais pas du tout et c'est assez intéressant mais je me demande si on peut prouver des fonctions un peu plus complexes qu'un min / max, qui renvoient du texte par exemple ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 mai 2017 à 21:58:43

                          Les deux exemples les plus complexes que j'aborde dans le tutoriel sont un algorithme de tri de tableau et la rechercher d'un sous tableau maximum dans un tableau. Donc oui, on peut faire plus complexe qu'un min/max mais je ne pense pas que ce soit la question :) .

                          Pour les fonctions qui renvoient du texte, ça va surtout dépendre de notre capacité à exprimer une spécification au sujet de ce texte et à abstraire son contenu, plus que la capacité des prouveurs en eux-mêmes. Après, les manipulations de texte sont assez notoirement connue pour être plus dures à prouver que pas mal d'autres propriétés. Des gens l'ont déjà fait avec le proveur interactif Coq : https://arxiv.org/abs/1105.2576 .

                          Pour ma part, j'ai utilisé Frama-C et WP pour vérifier que le module d'adressage virtuel d'un micronoyau respecte bien l'invariant "pour toute page de mémoire, le compteur présent dans sa structure de description est égal au nombre de fois où le numéro de cette page apparaît dans la mémoire" (grossièrement) y compris en présence de multi-threading. Donc, oui, on peut prouver des choses complexes avec Frama-C. D'autres études :

                          A noter que par exemple, Frama-C et WP sont utilisés sur du code en production chez Airbus pour citer probablement que le plus gros.

                          Après, je ne pense pas faire croire le contraire avec le tutoriel mais il faut être clair : c'est dur de prouver du code.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                            16 mai 2019 à 14:31:55

                            Pour information la version anglaise du tutoriel a subi une très grosse mise à jour récemment. Il est aujourd'hui en bêta et je vise à finaliser les derniers détails pour une sortie juste après la sortie de la prochaine release de Frama-C. La version PDF est disponible sur ce post sur ZDS. N'hésitez pas à y jeter un oeil pour m'apporter des retours.

                            La version française devrait suivre, mais cela va demander à mon avis quelques semaines de réaliser la traduction dans son entier.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                              16 mai 2019 à 17:09:39

                              Je vais lire ca avec plaisir ! Merci !
                              • Partager sur Facebook
                              • Partager sur Twitter
                                16 mai 2019 à 18:57:36

                                Note, j'ai déjà trouvé des soucis dans des corrections (qui ne sont pas dans le PDF mais sur GH).

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                                Anonyme
                                  16 mai 2019 à 19:29:28

                                  --- Hou là...
                                  --- J'ai écrit ça moi ?
                                  --- Toujours est-il que « quelqu'un » l'a écrit.
                                  Tant pis, maintenant tu écris la doc'.
                                  --- Oh non !
                                  --- Bon alors tu débogues.
                                  --- Ca va, ça va, j'écris la doc' ...
                                  --- OK, ensuite tu débogues.
                                  --- ...

                                  -
                                  Edité par Anonyme 16 mai 2019 à 19:30:17

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    30 mars 2020 à 12:51:57

                                    Grand jour, les versions :

                                    - PDF FR
                                    - Online FR
                                    - PDF EN

                                    Sont désormais toute au même niveau et à jour pour la version actuelle de Frama-C. Maintenant, il faut que je tienne le rythme des changements de versions de Frama-C.

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                                    Marre de tester les programmes C ? Prouvez les !

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown