Partage
  • Partager sur Facebook
  • Partager sur Twitter

Interpreter instructions dans un fichier

Sujet résolu
    2 janvier 2008 à 16:04:13

    Bonjour a tous !

    Je voudrais savoir s'il était possible que mon prog interprete une instruction dans un fichier comme mon compilo le ferait... Ce que je demande n'est pas évident, voici un exemple:

    1. FILE *file = fopen( "./Instructions.txt", "r" );
    2. if( !file )
    3. {
    4.     return 1;
    5. }
    6. char *chaine;
    7. fgets( chaine, 1000, file );
    8. Exec( chaine );


    Avec Exec( chaine ); la fonction qui récupere ce qu'il y a d'écrit dans file ( la premiere ligne ) et l'execute...

    Par exemple, si dans mon fichier il y a:
    1. printf( "Hello World" );

    Je veux que le fichier récupère la chaine et l'execute...

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2008 à 16:25:56

      Woaaaa !!! tu veux faire un interpreteur/compilateur C ?
      Grosso modo ca se fait comme ceci :
      -> Analyse lexicale (recherche des Tokens/Balises du langage)
      -> Analyse syntaxique (verification de la grammaire)
      -> Analyse semantique (Le programme fait-il bien appel a des variables/fonctions deja definies, portee des variables...)
      -> Interpretation (execution) ou traduction (compilation), (tables de symboles, gestion des piles d'execution, etc...),
      -> sans oublier le recodage dans ton langage de toutes les fonction que tu vas utiliser (genre printf)

      Ya du boulot ^^ J'ai eu la chance de faire ca 5 fois pendant en license/maitrise d'info mais c'etait en Caml, pas en C... je ne peux donc pas t'aider pour le Lex/Yacc :'(
      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2008 à 16:36:37

        Citation : Frava

        Avatar
        Woaaaa !!! tu veux faire un interpreteur/compilateur C ?



        Euh...

        Citation : Fr4V4

        Grosso modo ca se fait comme ceci :
        -> Analyse lexicale (recherche des Tokens/Balises du langage)
        -> Analyse syntaxique (verification de la grammaire)
        -> Analyse semantique (Le programme fait-il bien appel a des variables/fonctions deja definies)
        -> Interpretation (execution) ou traduction (compilation), (tables de symboles, portee des variables, gestion des piles d'execution, etc...),
        -> sans oublier le recodage dans ton langage de toutes les fonction que tu vas utiliser (genre printf)



        J'ai pensé a tout ça, c'est juste que je désire faire un mini jeu qui utilisera un bot. Ce bot sera programmé sommairement par le joueur ( il n'y aura qu'une seule dimension dans l'aire de jeu:

        1. MOVE(5,LEFT)// Bouge vers la gauche de 5 cases
        2. etc...


        J'ai parlé du C car je pensais que s'il était possible de le faire en C, le faire dans un langage perso serait d'autant plus simple ( et j'aurais appris quelquechose ).
        J'ai pensé a faire une vérification orthographique simple, du style:

        - Récupere la premiere ligne
        - Compare la avec une base de donnée ( qui contient mes fonctions perso )
        - Si il y a un résultat, regarde les arguments
        - Execute

        Citation : Fr4V4

        Ya du boulot



        Faut se dire que ça va servir a quelquechose ( euh... sisi ça va servir >_< )

        Citation : Fr4V4

        J'ai eu la chance de faire ca 5 fois pendant en license/maitrise d'info mais c'etait en Caml, pas en C... je ne peux donc pas t'aider pour le Lex/Yacc



        Caml est populaire dans les écoles d'info on dirait... Ca servirait a quelquechose que je l'apprenne ou pas ?
        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2008 à 17:07:45

          Citation : ironzorg

          1. MOVE(5,LEFT)// Bouge vers la gauche de 5 cases
          2. etc...

          Si tu n'as pas besoin de definir de fonctions ou de variables dans ton langage, alors une analyse de ligne suivie d'une interpretation est suffisante. Facilement faisable en C...

          Citation : ironzorg

          Caml est populaire dans les écoles d'info on dirait... Ca servirait a quelquechose que je l'apprenne ou pas ?


          Caml est tres bien si tu veux apprendre la programmation a un niveau que je qualifierais de "superieur" en abstraction (pas le choix, c'est un langage fonctionnel). Niveau performances il se situe entre le C et le C++, il est tres bien pour coder des compilateurs ou tout autre chose qui ne requiert pas d'interface graphique poussée car il peche par son manque de librairies dans ce domaine (du moins c'etait vrai il y 4 ans ^^ ). A part ca, je prefere le Caml au Java, meme si c'est moins utile professionnellement parlant ;)
          • Partager sur Facebook
          • Partager sur Twitter
            2 janvier 2008 à 17:24:15

            Citation : Fr4V4

            Si tu n'as pas besoin de definir de fonctions ou de variables dans ton langage, alors une analyse de ligne suivie d'une interpretation est suffisante. Facilement faisable en C...



            C'est cela.

            Citation : Fr4V4

            Caml est tres bien si tu veux apprendre la programmation a un niveau que je qualifierais de "superieur" en abstraction (pas le choix, c'est un langage fonctionnel). Niveau performances il se situe entre le C et le C++, il est tres bien pour coder des compilateurs ou tout autre chose qui ne requiert pas d'interface graphique poussée car il peche par son manque de librairies dans ce domaine (du moins c'etait vrai il y 4 ans ^^ ). A part ca, je prefere le Caml au Java, meme si c'est moins utile professionnellement parlant ;)



            Donc en gros, le caml sert a avoir des bonnes notes en cours... Au niveau de la syntaxe, c'est comme Java et C ( quasiment pareil dans la syntaxe ), ou alors ça ressemble plus a un autre langage ?
            • Partager sur Facebook
            • Partager sur Twitter
              2 janvier 2008 à 17:43:11

              Citation : ironzorg

              Donc en gros, le caml sert a avoir des bonnes notes en cours...


              Pas vraiment, c'est un langage qui t'oblige a concevoir ton programme avant de l'implementer, donc tres bien pour apprendre a programmer.

              Citation : ironzorg

              Au niveau de la syntaxe, c'est comme Java et C ( quasiment pareil dans la syntaxe ), ou alors ça ressemble plus a un autre langage ?


              Rien a voir avec le C ou le Java ou le C++, c'est un langage fonctionnel fortement typé. Aulieu de penser itératif, tu penses récursif :D
              • Partager sur Facebook
              • Partager sur Twitter
                3 janvier 2008 à 13:28:14

                Citation : Fr4V4

                Pas vraiment, c'est un langage qui t'oblige a concevoir ton programme avant de l'implementer, donc tres bien pour apprendre a programmer.



                Du genre établir un cdc, faire des ebauches de code sur papier.. C'est ça ? Parce que c'est ce que je fais avant de commencer chaque projet que je trouve mbitieux ( par rapport a mes competences en programmation )...

                Citation : Fr4V4

                J'ai eu la chance de faire ca 5 fois pendant en license/maitrise d'info



                Tu travailles dans quoi ? Ca consiste en quoi la license ( quelles spé, options et tout... Je sais ce que c'est, je veux juste savoir en quoi ça consiste du point de vue info ) ?

                • Partager sur Facebook
                • Partager sur Twitter
                  3 janvier 2008 à 13:37:43

                  Citation : ironzorg

                  Je voudrais savoir s'il était possible que mon prog interprete une instruction dans un fichier comme mon compilo le ferait...


                  Oui, bien sûr : un exemple très très basique que j'ai publié hier :

                  http://www.siteduzero.com/forum-83-225821-2037388-bonne-annee.html#r2037388
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Music only !
                    3 janvier 2008 à 13:50:52

                    Merci pour le code ed, mais ça je sais faire :D
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Interpreter instructions dans un fichier

                    × 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