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 :

Moteur de Script


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 90
    Par défaut Moteur de Script
    Bonjour

    Dans le cadre de mes etudes je dois realiser un partitionneur pour asic.
    Le probleme n'est pas dans ce logiciel mais dans son utilisation, il m'a été demandé de lui fournir un moteur de script afin de manipuler la bibliotheque sans
    devoir compiler.

    J'ai connais flex/bison mais le projet est pour windows (ca complique donc les choses). De plus je n'ai aucune idée de la facon de construire ce moteur de script. Tant qu'a faire je voudrais qu'il me permette de piloter autre chose que ce partitionneur dans le futur.

    Si vous aviez des liens ou des docs sur le sujet ca m'interresserais.
    Exit RUBY ou LUA car il doit etre 100% mano mano ... donc si vous pouviez au moins m'eguiller sur la facon d'interagir pour appler mes fonctions C++ a partir d'un langage de script je vous en serait reconnaissant

    Merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Ceci pourra peut-être t'aider :
    http://www.flipcode.com/articles/scr..._issue01.shtml

    Ensuite si tu n'es pas obligé de te taper l'analyseur lexical / syntaxique à la main, il y a boost::spirit qui est très bien.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 90
    Par défaut
    Merci Laurent pour le lien.

    je vais regarder certain passage qui peuvent etre interressant.
    le probleme dans ce genre de doc c'est que l'on nous parle toujours du
    parser/lexer mais jamais de l'interaction des script avec le programme cible,
    or c'est ca qui m'interresse.

    Je vais me plonger dans l'article

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par new.proger
    Dans le cadre de mes etudes je dois realiser un partitionneur pour asic.
    J'allais suggérer TCL, pour la bonne et simple raison que c'est le langage de commande utilisé par pas mal d'outils dans l'EDA. Ca ne sert à rien de faire apprendre un nouveau langage à tes utilisateurs quand il y a de bonne chance qu'il en connaisse déjà un.

    Si vous aviez des liens ou des docs sur le sujet ca m'interresserais.
    Exit RUBY ou LUA car il doit etre 100% mano mano ...
    J'ai du mal à comprendre l'intérêt de la contrainte. Ce sont deux sujets intéressants en eux-même mais pourquoi vouloir les combiner? A mon avis ces deux projets vont entrer en conflit pour le temps dont tu disposes et il y a un risque de ne faire convenablement aucun des deux. Est-ce qu'au moins tu peux disposer de choses comme Open Access?

    Perso, je prendrais l'a priori de faire l'interpréteur le plus simple possible, vraissemblablement un lisp simple, et je me concentrerais sur la partie EDA.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 90
    Par défaut
    salut jean-marc,

    En fait le projet a legerement devie en stage (et donc le sujet avec) pour 2 raisons :
    - je suis issu du monde electronique donc pour me specialiser un peu plus a l'info j'ai proposé d'étendre le sujet.
    - c'est a prendre sous la forme d'un exercice, mon partitionneur est quasi-fini donc les 2 mois pourront se concentré sur le moteur de script.

    Nous avons reslié une machine virtuelle courant de l'année pour un assembleur (je sais plus lequel) avec flex/bison en C++.
    J'avais beaucoup aimé cette approche de l'informatique et du coup il m'ont proposé de travailler sur un langage de script qui serai utilisé en interne au labo.

    Passé ce detail historique ;-) j'ai lu l'article que laurent m'a donné et helas il ne parle pas vraiment des interactions mais du parser/lexer ce qui est 100% des docs sur le sujet, donc soit je suis neuneu soit il manque une partie sur comment faire pour piloter et imbriquer mes differentes classes dispo en C++ avec mon langage ?

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par new.proger
    ils m'ont proposé de travailler sur un langage de script qui serai utilisé en interne au labo.
    Je continue à ne pas voir du tout l'intérêt pour un labo de micro-électronique de développer un langage de script à eux. Surtout quand on considère qu'en micro-électronique, TCL est quasiment standard.

    Passé ce detail historique ;-) j'ai lu l'article que laurent m'a donné et helas il ne parle pas vraiment des interactions mais du parser/lexer ce qui est 100% des docs sur le sujet, donc soit je suis neuneu soit il manque une partie sur comment faire pour piloter et imbriquer mes differentes classes dispo en C++ avec mon langage ?
    Je ne comprends pas quel est le problème, mais je n'ai pas été voir l'article donné par Laurent.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 90
    Par défaut
    he bien mon souci est le suivant :
    - je creer une syntaxe, OK
    - je creer ma grammaire, OK

    mais comment faire pour que je puisse appeler une fonction par son nom
    a partir du langage de script.

    par exemple je sipose du bibli de maths :
    exp()
    mul
    div
    ...
    qui sont coder en en c++ avec leurs classe et tout le tintoin.

    maintenant je veux fafire un truc du genre

    appeler (mul(3,4)) ;
    if (n=m) appeler (exp(3,4)) ;

    je suis d'accord mais l'exmple est pourrit mais c'est bien comme ca que marche un langage de script ou je part dans le mur ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 90
    Par défaut
    Bon voila,
    J'ai bien relu cette article plus un autre en j'en ai conclu apres reflection que l'approche suivante pourrait etre bonne :

    " le compilateur "
    * le programme charge le parseur avec un fichier INIT
    * le PARSEUR analyse le fichier et en ressort une liste de symboles

    [FILE.SCRIPT] ===> PARSEUR ===> [ARBRE_SYMMOLES(commandes)]

    " l'interpreteur "
    * dans le programme
    * permet d'analyser la table des symboles pour executer les commandes donner

    [ARBRE_SYMMOLES(commandes)] ===> INTERPRETE

    Je pense que je dois pas etre loin mais il manque encore un petit quelques chose ...

  9. #9
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par new.proger
    he bien mon souci est le suivant :
    - je creer une syntaxe, OK
    - je creer ma grammaire, OK

    mais comment faire pour que je puisse appeler une fonction par son nom
    a partir du langage de script.
    Je me demande si ce qu'il te manque ce n'est pas la confirmation qu'il faut enregistrer les fonctions que tu veux pouvoir utiliser depuis ton langage de script, avec en plus un moyen de spécifier le nombre et la nature des arguments et le type du résultat (ou alors forcer toutes les fonctions enregistrées à avoir le même prototype).

    Une alternative est d'enregistrer non des fonctions mais des objets.

Discussions similaires

  1. Impossible de trouver le moteur de script "VBScript"
    Par hackoofr dans le forum VBScript
    Réponses: 9
    Dernier message: 07/09/2011, 18h29
  2. Réponses: 1
    Dernier message: 16/09/2009, 17h18
  3. [HttpUnit] Javascript changer le moteur de script
    Par Tan dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 13/12/2007, 16h10

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