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

Un compilateur maison!

Vos autres créations
4
5
2.3k
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 12 sept. 2014, 19:31

    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 12 sept. 2014, 21:09

      toi tu es un fou ^^

      1 réponse Dernière réponse Répondre Citer 0
      • M
        MrAzErTy31 dernière édition par 13 sept. 2014, 06:25

        😄 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 13 oct. 2014, 21:01

          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 14 oct. 2014, 19:56

            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
            4 sur 5
            • Premier message
              4/5
              Dernier message
            Design by Woryk
            Contact / Mentions Légales

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB