• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Un compilateur maison!

    Vos autres créations
    4
    5
    2276
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • jglrxavpok
      jglrxavpok Modérateurs dernière édition par

      Encore une fois, je n’ai pas fini de vous étonner!

      C’est maintenant avec un compilateur que je reviens : WeaC !

      #WeaC, c’est quoi?(WeaC, c’est quoi?)

      “Weak”, faible en anglais + “C” un langage de programmation. Donc WeaC est… une variante du C en moins bien ^^
      Autres noms possible: le “Xav”, le “Vax”, le “C–”, le “X”, le “Çava”, le “ÇaPourraitÊtrePire”, etc.

      Voici à quoi ressemble du WeaC:

      
      #include <time>#include
      
      double out2(int a,int b)
      {
      a = 0;
      string c = "Test";
      out(a-b);
      out(c+"!"-"est");
      double d = pow(pow(2,2),2);
      return d;
      }
      
      int main()
      {
      return out2(1,2);
      }
      
      

      (Pour ceux qui connaissent le C/C++, ça vous sera familier ;))

      Le but du compilateur est de transformer ce code en bytecode (le but est de le faire lire par la JVM au final):

      METHOD_START __MAIN__::out2 double(int;int;)
      
      LOAD_CONST 0
      VAR_STORE 0
      LOAD_CONST "Test"
      VAR_STORE 2
      VAR_LOAD 0
      VAR_LOAD 1
      OPERATION -
      METHOD_CALL std::out *(*;)
      VAR_LOAD 2
      LOAD_CONST "!"
      OPERATION +
      LOAD_CONST "est"
      OPERATION -
      METHOD_CALL std::out *(*;)
      LOAD_CONST 2
      LOAD_CONST 2
      METHOD_CALL math::pow *(int;int;)
      LOAD_CONST 2
      METHOD_CALL math::pow *(*;int;)
      VAR_STORE 3
      VAR_LOAD 3
      RETURN
      METHOD_END
      METHOD_START __MAIN__::main int()
      LOAD_CONST 1
      LOAD_CONST 2
      METHOD_CALL __MAIN__::out2 *(int;int;)
      RETURN
      METHOD_END
      

      Liens

      Sources: Comme souvent, tout est sur GitHub!</time>

      Modérateur sur MFF. 
      Mon Github: http://github.com/jglrxavpok
      Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

      1 réponse Dernière réponse Répondre Citer 0
      • isador
        isador Moddeurs confirmés Modérateurs dernière édition par

        toi tu es un fou ^^

        1 réponse Dernière réponse Répondre Citer 0
        • M
          MrAzErTy31 dernière édition par

          😄 O.g xavpok tu es un génie ! Donc si j’ai bien compris ça permet que la JVM puisse lire une variante du C ?

          Mes mods :

          >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
          CraftYourMenu : http://minecraftforgefrance.fr/showth…

          1 réponse Dernière réponse Répondre Citer 0
          • JustPingo
            JustPingo dernière édition par

            Allez zou un gros necropost, mais ça peut prendre des librairies Forge ?

            Envoyé de mon iPhone en utilisant Tapatalk


            Über Networking Antennas

            1 réponse Dernière réponse Répondre Citer 0
            • jglrxavpok
              jglrxavpok Modérateurs dernière édition par

              Tu peux l’utiliser pour modder si tu veux 😉
              Mais c’est TRES peu sûr que tu puisses les utiliser comme tu veux ^^

              Modérateur sur MFF. 
              Mon Github: http://github.com/jglrxavpok
              Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

              1 réponse Dernière réponse Répondre Citer 0
              • 1 / 1
              • Premier message
                Dernier message
              Design by Woryk
              Contact / Mentions Légales

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB