Partage
  • Partager sur Facebook
  • Partager sur Twitter

C'est quoi LLVM et Clang ?

Sujet résolu
    30 janvier 2017 à 12:05:56

    Bonjour,

    Est-ce que quelqu'un peut m'expliquer avec des mots simples ce que c'est LLVM et Clang ?

    Merci d'avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      30 janvier 2017 à 12:47:21

      Lu'!

      LLVM c'est une infrastructure pour compilateur qui travaille à bas niveau. Il traite un langage (également appelé LLVM) qui ressemble à une abstraction générique pour les langages type assembleurs (qui eux sont spécifiques à des architectures données). Grosso modo : c'est un langage qui a la tronche de l'assembleur et qui peut se traduire facilement vers n'importe quel assembleur.

      On se sert de LLVM pour écrire des compilateurs : le code d'origine est compilé vers LLVM qui se charge ensuite de traduire vers le code machine cible.

      Clang c'est un compilateur C, C++ et Obj-C qui utilise LLVM dans ses couches de bas niveau.

      • Partager sur Facebook
      • Partager sur Twitter

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

        30 janvier 2017 à 13:17:27

        Merci beaucoup. Mais pourquoi les compilateur passe par LLVM au lieu de compiler directement en binaire ?
        • Partager sur Facebook
        • Partager sur Twitter
          30 janvier 2017 à 13:23:26

          Parce que tous les compilateurs passent pas une phase de compilation où l'on obtiendra un AST de très bas niveau proche de l'assembleur. Donc avoir un framework pour faire la dernière traduction vers le langage machine est largement souhaitable :

          • on n'a pas à écrire les optimisations correspondantes soi-même,
          • on n'a pas à écrire la traduction vers la bonne architecture soi-même,
          • si LLVM supporte une nouvelle architecture, on la supporte aussi directement,
          • si LLVM produit de nouvelles optimisations, on en bénéficie immédiatement.
          • Partager sur Facebook
          • Partager sur Twitter

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

          C'est quoi LLVM et Clang ?

          × 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