Partage
  • Partager sur Facebook
  • Partager sur Twitter

Grande débutante en programmation et langage C

    24 novembre 2018 à 23:23:15

    Peut être au niveau matériel mais au niveau logiciel je pense savoir plus ou moins comment ça se goupille
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2018 à 23:54:50

      Beaucoup de monde "pense savoir plus ou moins". C'est peut être ton cas. Mais avec l'expérience (et michelbillaud en a beaucoup), on remarque que ce n'est pas souvent le cas. C'est pour cela qu'on parle d'illusion.

      Mes premiers cours d'informatique contenait une partie électronique à l'époque, on passait du temps à étudier les composants d'un CPU. Et puis les ordinateurs ont évolués, les langages aussi, et il s'est avéré qu'il était plus pertinent de passer du temps d'apprentissage sur d'autres choses, en particulier la conception logicielle.

      Il va falloir faire évoluer aussi cette façon de penser que le C permet d'apprendre les bases de la programmation et des ordinateurs. Sauf domaines d'application très spécifiques, ce n'est plus vrai depuis longtemps.

      • Partager sur Facebook
      • Partager sur Twitter
        24 novembre 2018 à 23:59:32

        michelbillaud a écrit:

        En realite tu n'est meme pas sur que ta variable fasse un tour par la mémoire, elle peut très bien n' exister que comme contenu d'un registre.

        Et ajoutera toute la machinerie de dingue qui tourne au niveau de l'allocation sur le tas, qui ne peut définitivement pas se résumer à "on a alloué une zone mémoire dans le tas". La différence de niveau d'abstraction avec ce qui se fait dans les langages "haut-niveau" est juste ridicule.

        • Partager sur Facebook
        • Partager sur Twitter

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

          25 novembre 2018 à 14:29:20

          La plupart de temps, le modèle de "ce qui se passe dessous" correspond, pour le matériel, à l'état de la technologie des ordinateurs du début des années 60, et des microprocesseurs des années 70. Et pareil pour les compilateurs où en gros on avait une traduction "bête" instruction par instruction, plus un peu d'optimisation pour éliminer le code mort et les calculs redondants.

          On n'en est heureusement plus là. Si on regarde le code généré (ça me reprend) pour

          int z(int t[], int n) {
            while (--n >= 0) t[n] = 0;
          }
          

          la variable n ne se matérialise pas par une variable, parce que le compilateur reconnait qu'on veut faire un memset sur le tableau, même si on a essayé de l'embrouiller avec une boucle en marche arrière :

          z:
          .LFB0:
          	testl	%esi, %esi
          	jle	.L3
          	leal	-1(%rsi), %eax
          	movslq	%esi, %rsi
          	leaq	(%rdi,%rsi,4), %rdi
          	xorl	%esi, %esi
          	leaq	4(,%rax,4), %rdx
          	subq	%rdx, %rdi
          	jmp	memset@PLT                ---------
          
          .L3:
          	rep ret
          	.cfi_endproc
          


          et en plus, il génère un  "jrst hack" pour l'appel terminal à memset : au lieu de faire un call qui empilera des trucs, et qui fera revenir par la, il fait un jmp au sous programme memset dont le "ret" fera revenir directement à l'appelant.

          Mais bon, si tu avais deviné "comment ça se goupille" sous un exemple pourtant aussi simple, chapeau.

          (le jrst hack, une vieille astuce des programmeurs de pdp-1 en assembleur...)

          https://dspace.mit.edu/handle/1721.1/6091

          -
          Edité par michelbillaud 25 novembre 2018 à 14:44:17

          • Partager sur Facebook
          • Partager sur Twitter
            25 novembre 2018 à 15:45:05

            Mes programmes en assembleur remontent à loin (imb360 et z80), mais je découvre le jrst hack. Merci.
            • Partager sur Facebook
            • Partager sur Twitter

            On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

              25 novembre 2018 à 16:11:22

              C'est ce qui intervient lorsqu'on fait la "dérécursivation d'un appel terminal", les jours où on transforme une fonction récursive en boucle.

              Ca date du PDP-1, mais comme il ne s'en est vendu qu'une 50aine d'exemplaires, ça a été connu par les modèles suivants PDP-10, PHP-11, etc. et l'influence des chercheurs du MIT. On en retrouvait mention dans la documentation du PDP-11, c'est là que je l'ai vu vers 81-82 (doc du LSI-11/23 de Plessey).

              -
              Edité par michelbillaud 25 novembre 2018 à 20:30:10

              • Partager sur Facebook
              • Partager sur Twitter
                26 novembre 2018 à 8:31:30

                Bonjour tout le monde! au fait j'aimerai débuter la programmation aussi vite que possible mais vu le débat que j'ai vu la haut je sais plus avec quel langage commencer là(un peu confus} donc j'ai besoin de conseils slvp et notez que suis un vrai curieux surtout de tout ce qui concerne l'informatique! Merci!
                • Partager sur Facebook
                • Partager sur Twitter
                  26 novembre 2018 à 8:38:32

                  • Pour ce qui est de commencer, tu peux t'y mettre tout de suite si tu veux
                  • Par contre arriver à programmer correctement, ça va prendre un certain temps.  Quelques années. (*)
                  • Si tu demandes quel est le meilleur langage pour commencer, tu auras des avis divergents.

                  (*) évidemment, c'est pas les marchands de "formations" en 3 mois avec cinq tutoriels et douze pdf à distance qui vont te dire ça.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 novembre 2018 à 8:55:27

                    michelbillaud a écrit:

                    tu auras des avis divergents...

                    et non pertinent ?

                    Marcher est une compétence qu'on utilise pendant toute une vie, durant laquelle on va user des centaines de chaussures. Et pourtant, est-ce qu'on se prend autant la tête sur le choix de la première paire ?

                    Choisis. Et changes la semaine prochaine si cela ne te convient pas.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 novembre 2018 à 8:56:41

                      AbdoulayeBah22 a écrit:

                      Bonjour tout le monde! au fait j'aimerai débuter la programmation aussi vite que possible mais vu le débat que j'ai vu la haut je sais plus avec quel langage commencer là(un peu confus} donc j'ai besoin de conseils slvp et notez que suis un vrai curieux surtout de tout ce qui concerne l'informatique! Merci!


                      comme michelbillaud, plus une chose que tu dois dire pour avoir un conseil avisé, qu'est-ce veux faire, web/embarqué/mobile/desktop ?

                      en gros qu'est ce qui te fait envi, 

                      • web : HTML/CSS/javascript(nodejs)
                      • embarqué : C
                      • mobile : j'en fais pas assez pour être de bon conseil
                      • desktop : j'en fais pas assez pour être de bon conseil
                      • Partager sur Facebook
                      • Partager sur Twitter

                      la connaissance est une chose qui ne nous appauvrit pas quand on la partage.

                      Mon GitHub

                        26 novembre 2018 à 9:13:04

                        Merci à vous tous pour vos avis! c'est noté!

                        Pour ce qui est de ce que veux réellement faire je pense que le web m'intéresses pas mal parce que je connais certains gars du quartier qui le font et qui réussisse pas mal mais bon je viens tout juste de décrocher mon BAC donc je connais pas trop encore l'univers de l'informatique tout ce que que je sais ce que je veux devenir un bon  programmeur et si vous avez des domaines à mes conseiller je prendrai note en tout cas

                        Merci!

                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 novembre 2018 à 9:46:24

                          Le Web, c'est vaste. Ca va du PHP de base au J2EE ou autre usine à gaz.

                          Et ça ne veut pas dire qu'il faut commencer par ça pour y arriver.

                          -
                          Edité par michelbillaud 26 novembre 2018 à 9:47:09

                          • Partager sur Facebook
                          • Partager sur Twitter
                            26 novembre 2018 à 10:05:15

                            OK MERCI beaucoup encore une fois! C'est noté! je penses que je vais pas tarder à commencer les cours! lolll!

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Grande débutante en programmation et langage C

                            × 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