Partage
  • Partager sur Facebook
  • Partager sur Twitter

D'ou provient le langage C ?

Anonyme
    24 juin 2017 à 18:43:42

    B'jour, B'soir !

    Je suis le genre de personne qui me pose beaucoup de questions et j'aime connaître l'outil que j’utilise dans les moindres détailles.

    Alors voilà je suis face à des langages tels que Python, JavaScript, Ruby et j'en passe ... Leurs points commun ? Ils sont haut-niveau et sont pour la plupart écrits en C ou assembleur d'après ce que j'ai compris. Seulement je bloque sur une autre question  ! Si des langages modernes et haut-niveau résident  généralement sur le langage C, comment ce même langage a-t-il été écrit et de même pour l'assembleur qui sont des langages piliers et véritablement basiques dans l'informatique ?

    J'ai pensé au binaire mais beaucoup disent que le binaire et incompréhensible pour beaucoup de personnes, qu'il faudrait tout une vie pour pouvoir maîtriser cette chose complètement abstraite ...

    C'est un post que je pose ici à la vas vite, j'espère que vous allez réussir à comprendre, en espérant pouvoir avoir une réponse qui correspond à mes attentes !

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2017 à 19:10:11

      Hello,

      Du langage B. Bin oui, tout bêtement. 5 secondes de recherche (dont je n'avais pas besoin) pour obtenir une réponse: wikipedia

      -
      Edité par edgarjacobs 24 juin 2017 à 19:10:24

      • 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

        24 juin 2017 à 19:26:58

        Hello,

        Pour savoir d'où il provient ( question assez vague d'ailleurs ), il faut retracer son histoire. Et ce n'est pas les ressources qui manque à ce sujet sur Internet.

        « [...] le langage C, comment ce même langage a-t-il été écrit [...] »

        “ The origin of C is closely tied to the development of the Unix operating system, originally implemented in assembly language on a PDP-7by Dennis Ritchie and Ken Thompson, [...] ”

        Citation de wikipedia →C (programming language)

        « [...] et de même pour l'assembleur [...] »

        “ An assembly language [...] in which there is a very strong ( ... ) correspondence between the language and the architecture's machine code instructions. ”

        Citation de wikipedia →Assembly language

        On ne peut donc pas parler 'd'antécédent' dans lequel ce langage aurait été écrit.

        « J'ai pensé au binaire mais beaucoup disent que le binaire et incompréhensible pour beaucoup de personnes [...] »

        Il l'est pour tout le monde. Aujourd'hui tu écris ton programme en binaire/hexadécimal, le lendemain tu n'as plus idée de ce qu'est censé faire ton programme. À moins d'avoir pris des notes mnémotechniques ( c'est là où le langage d'assemblage intervient ).

        • Partager sur Facebook
        • Partager sur Twitter
          24 juin 2017 à 21:22:45

          Effectivement, pas mal de compilateurs sont aujourd'hui écrits en C. Mais il me semble que le C lui-même n'a pas été écrit dans un langage de même niveau pré-existant (oui, c'est une évolution du B, mais il n'a pas été écrit en B !). J'imagine que le premier compilateur C a été écrit en assembleur, car ça m'étonnerait qu'il ait été écrit en langage machine. Dans les années 1960, tout le monde programmait en assembleur. Certains hackers estimaient même que programmer dans un langage évolué (c'est-à-dire au-dessus de l'assembleur) était plus ou moins une hérésie. Le langage C a été écrit pour que le code source d'Unix soit portable, mais je me demande d'ailleurs si la première tentative d'écriture d'Unix n'avait pas été faite en assembleur (avant de le faire en B puis en C). Pas sûr, mais si quelqu'un peut confirmer (ou pas) ?

          Quant à l'assembleur, j'imagine qu'il a été écrit en langage machine car je ne vois pas trop en quoi il aurait pu être écrit sinon. Je laisse les connaisseurs confirmer ou pas. (J'ai lu quelque part qu'il y avait autrefois une blague comme quoi personne ne comprenait le langage machine à part Von Neumann...)

          -----

          PS : attention à l'ambiguïté de la question. Il ne faut pas confondre le langage et le compilateur. Si on demande d'où provient le langage C, il provient en effet du langage B, dans le sens où le langage C proprement dit (la définition des mots-clés, des règles de syntaxe, et comment tout ça fonctionne), et non son compilateur, est une évolution du langage B proprement dit (en gros on a ajouté des types). Mais je crois que la question de Reachip était : avec quel langage a été écrit le compilateur C ?

          -
          Edité par robun 24 juin 2017 à 21:25:18

          • Partager sur Facebook
          • Partager sur Twitter
            24 juin 2017 à 21:31:33

            robun a écrit:

            J'imagine que le premier compilateur C a été écrit en assembleur, car ça m'étonnerait qu'il ait été écrit en langage machine

            Non, si mes souvenirs sont exacts (mais je n'arrive pas à trouver une source sur le net), le premier compilateur C a été écrit en Algol.

            • 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

              24 juin 2017 à 22:49:54

              Merci pour le lien, c'est passionnant ! :)

              • Partager sur Facebook
              • Partager sur Twitter
                25 juin 2017 à 1:57:33

                Reachip a écrit:

                J'ai pensé au binaire mais beaucoup disent que le binaire et incompréhensible pour beaucoup de personnes, qu'il faudrait tout une vie pour pouvoir maîtriser cette chose complètement abstraite ...

                Non, ça n'a rien de bien abstrait. C'est seulement fastidieux à décoder.
                Mais en fait, l'assembleur n'est qu'une représentation plus lisible du binaire. Donc même si l'on doit partir du binaire, on arrive assez vite à produire un assembleur. Et une fois qu'on a l'assembleur, on n'a plus besoin de revenir au binaire.
                • Partager sur Facebook
                • Partager sur Twitter
                  25 juin 2017 à 3:08:42

                  Marc Mongenet a écrit:

                  Reachip a écrit:

                  J'ai pensé au binaire mais beaucoup disent que le binaire et incompréhensible pour beaucoup de personnes, qu'il faudrait tout une vie pour pouvoir maîtriser cette chose complètement abstraite ...

                  Non, ça n'a rien de bien abstrait. C'est seulement fastidieux à décoder.
                  Mais en fait, l'assembleur n'est qu'une représentation plus lisible du binaire. Donc même si l'on doit partir du binaire, on arrive assez vite à produire un assembleur. Et une fois qu'on a l'assembleur, on n'a plus besoin de revenir au binaire.

                  Pour simplifier grossièrement, lorsque ton cpu reçoit une séquence de bits, il effectue l'instruction qui lui correspond.

                  Par exemple, ton cpu 8-bit reçoit : 00000001, ce qu'il comprend comme (ce n'est pas le vrai code binaire pour cette instruction), ajouter la prochaine séquence de bits au registre (emplacement mémoire spécial du cpu) A. La prochaine séquence est (mettons) 00000010, et l'ALU (arithmetic logical unit) additionne le contenu de A avec 00000010 (2) et retourne la valeur obtenue dans A.

                  Cadeau : http://www.z80.info/zip/zaks_book.pdf

                  Hector;

                  • Partager sur Facebook
                  • Partager sur Twitter

                  D'ou provient le 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