IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Interpréteur de scripts


Sujet :

C++

  1. #41
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Regarde dans google des choses comme Matlab/Simulink (automatique), labview (acquisition/traitement de données, j'ai découvert qu'ils géraient aussi les lego mindstorm), virtools (réalité virtuelle)... J'avais à une époque utilisé un tel langage orienté traitement d'image, mais ne me souvient plus du nom. Ma boite actuelle fait ce genre de choses, dans le domaine de la génération automatique de documents...

    Par contre, ça demande plus de travail à mettre en place qu'un simple langage textuel.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  2. #42
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    moi j'adore la theorie des languages et je me suis beaucoup amusé avec Flex et Bison. J'avais meme implementé un language de script en java (JLEX/JCUP) pour un workflow. Le language se voulait simple, il etait simple... mais de nouveaux besoins le complexifiaient tout le temps un peu plus, au debut pas de variable, ensuite des variables locales ensuite des variables globales et dependantes du contexte.

    ... bref mon language ressemblait beaucoup a Javascript finalement...
    je parle de cela, c'etait il y a 8 ans :-)

    Maintenant si j'avais le meme besoin, je partirais sur un moteur existant type lua, rhino, QtScript... le choix dependant du contexte initial.

    Le javascript me parait etre aussi le language de script qui s'est demarqué des autres... il me semble en tous les cas :-) (je ne veux pas vexer d'autre personne quand meme :-))

    Deja beaucoup de designers, web masters, etc connaisse le javascript avec l'html ... En plus la puissance des closures ...

    bref je n'hesiterais pas :-)

    Hier j'ai quand meme re-essayé Flex/Bison en C++, enfin les deux generent du C++, il etait temps quand meme !!! c'est quand meme compliqué a mettre en oeuvre mais j'ai trouvé un exemple complet, tres bien expliqué :-) si ca interesse quelqu'un ...

  3. #43
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par levit Voir le message
    Je dispose d'une application développée en C++ que je contrôle par son interface graphique.

    Dans un souci d'automatisation de tâches, je veux créer un langage script très simple pour contrôler mon application non plus par son interface graphique mais par des commandes que j'écrirai dans un fichier texte.
    Je souhaite donc ajouter à mon application un interpréteur de scripts qui lise le fichier en question et qui effectue les actions demandées par les mots clés qui s'y trouvent.
    Steering en Python, c'est la solution idéale dans 99% des cas actuellement (cf Blender, des jeux, des applis scientifiques, ...).
    Mieux, tu laisses la partie GUI en Python, le reste tu le fais en C++, encore plus souple et propre au niveau design.

    Citation Envoyé par levit Voir le message
    Ce n'est pas une solution qui me convient puisque je souhaite moi même définir mon propre langage (avec mes propres mot clés) et intégrer "l'interpréteur de scripts", que je dois donc réaliser, à l'application existante.
    A moin que ce ne soit un exercice de cours, je ne peux que te déconseiller cette solution : on avait ça dans le laboratoire, c'est ingérable, pas possible de débugger proprement, ... Si on avait pris un langage existant, on aurait bénéficié
    des autres programmeurs autour. Heureusement, on change et on passe à Python (GUI + pilotage de code C++).

    Citation Envoyé par levit Voir le message
    Python a beau être "simple", il reste trop compliqué pour ce que je souhaite faire. Je n'ai pas besoin d'un bulldozer quand une pelle me suffit parfaitement.
    C'est sans doute pour ça que Python est reconnu comme étant un langage très simple d'apprentissage, que la communauté scientifique s'intéresse de plus en plus à lui, ...

    Matlab est typiquement le genre de chose que tu vas recréer. Sauf qu'il a tellement été modifié pour s'adapter aux nouveaux besoin des gens qu'il est bien plus complexe à apprendre que Python.

    Ensuite, tu veux faire simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NEW IMAGE 
    IMAGE LOAD "monImage.jpg"
    IMAGE SEUIL 128
    IMAGE SAVE "monImageBis.jpg"
    Je suis désolé, mais personne ne comprendra ton langage. C'est illisible, comment est-ce que je fais pour avoir une deuxième image, ...

    Prend un langage existant avec une communauté d'utilisateurs aguerris qui pourront aider tes utilisateurs. Tu en auras très vite marre d'avoir des gens qui te posent 50 fois la même question, si tant est qu'ils soient intéressés par apprendre un langage qui ne leur servira à rien à part un petit truc. Ils feront leur truc dans leur coin. J'ai vu cela se produire devant mes yeux, je sais ce que c'est de devoir expliquer quelque chose qui ne fonctionne pas si bien que ça, d'en corriger les bugs, ...

  4. #44
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 127
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    Hier j'ai quand meme re-essayé Flex/Bison en C++, enfin les deux generent du C++, il etait temps quand meme !!! c'est quand meme compliqué a mettre en oeuvre mais j'ai trouvé un exemple complet, tres bien expliqué :-) si ca interesse quelqu'un ...
    Oui oui, ça m'intéresse.

  5. #45
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par levit Voir le message
    Comme dit juste au dessus, mon langage se donc très très simple... je l'espère suffisamment pour que mes utilisateurs l'utilisent à bon escient.
    Mais un langage tres tres simple est un mythe Y'a toujours des cas tordus, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LOOP I 10
      IMAGE APPLY FILTRE \I
      IMAGE SAVE "C:\Image\I.jpg"
    END LOOP
    (au passage tu melanges francais et anglais, c'est pas tres tres bon...)

    Et ensuite l'utilisateur, une fois qu'il maitrise un peu les choses simples, veut toujours faire du plus "complique", comme faire une boucle de 1000 a 5000 tous les 253...

    Beaucoup de monde a deja essaye et s'est casse les dents, saufs quelques exceptions qui sont devenues populaires. C'est pour cela que tout le monde essaye de te convaincre de te tourner vers une de ces exceptions que la selection naturelle a retenu, parce quelle l'a fait pour une bonne raison. Tu profiteras ainsi de l'experience et du savoir faire de toute une communaute.

    Mais bon, tu as l'air tres determine a creer ton propre langage Si c'est a but personnel, aucun probleme. Maintenant, si tu as des utilisateurs avec un reel besoin derriere, pose toi avec honnetete la question de savoir ce que tu cherches a satisfaire en priorite : tes utilisateurs ou ton envie de creativite

  6. #46
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    Mais bon, tu as l'air tres determine a creer ton propre langage Si c'est a but personnel, aucun probleme. Maintenant, si tu as des utilisateurs avec un reel besoin derriere, pose toi avec honnetete la question de savoir ce que tu cherches a satisfaire en priorite : tes utilisateurs ou ton envie de creativite
    Pas mieux. Et comme dit, les utilisateurs voudront toujours plus, est-ce que tu seras toujours là pour faire évoluer le langage, pour l'optimiser, ... ? Et pour passer 99% de temps à faire cela dans les prochaines années ?
    Dans leur grande majorité, les gens ne peuvent pas le faire (pour ne pas dire 100%, impossible de développer durablement un langage qu'on est seul à maîtriser). Serais-tu une exception ? Je ne pense, sans t'offenser.

  7. #47
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    J'ai trouvé l'exemple sur le site
    http://idlebox.net/2007/flex-bison-cpp-example/

    et je joins l'archive desfois que le site n'existe plus quand un lecteur lira ce post :-)

    ... mais on a tous été unanime, mieux vaut utiliser un langage existant.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Interpréteur de langage de script spécifique
    Par sinaps1618 dans le forum C++
    Réponses: 8
    Dernier message: 01/10/2009, 09h42
  2. Créer son interpréteur de "script perso"
    Par fredu dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 28/02/2009, 06h43
  3. [VBS] Lancer plusieurs script dans le même interpréteur
    Par intrud3r dans le forum VBScript
    Réponses: 4
    Dernier message: 12/07/2006, 15h26
  4. Créer un interpréteur de langage inspiré du Basic
    Par Picasso dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 11/05/2002, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo