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

Algorithmes et structures de données Discussion :

création d'une machine virtuelle


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 111
    Points : 38
    Points
    38
    Par défaut création d'une machine virtuelle
    Bonjour,

    Le but est de créer un interpréteur java pour du pseudo langage (TANTQUE ... FAIRE ...).
    Pour l'instant j'étudie tout le process jusqu'a l'interprétation en me limitant aux opération arithmétique + * c'est à dire le calcul de chaque ligne d'un fichier qui contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    1+1
    2*3+1
    (1+2)*3
    ...
    J'arrive a parser et a générer un fichier xml représentant l'arbre des expressions arithmétique. je l'ai fait avec antlr.

    Mon problème est de pouvoir executer cet arbre. La solution la plus simple serait un parcours en profondeur de l'arbre obtenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    parcrours(noeud):
     pacours(noeud.gauche)
     parcours(noeurd.droit)
     // calcul noeud a partir de feuille droit et gauche
    La question est donc d'un point de vue conceptuelle pour calculer cette expression dois-je faire un parcours d'arbre ou convertir a destination d'une machine à pile.

    En effet une machine qui interprète des instructions ne doit-elle pas être à pile.
    Est-il possible de réaliser une machine qui traite des arbres pour les instructions.
    Si oui avez des liens je vous prie.
    Dans le cas des machines à pile si vous avez des liens ? J'ai du mal à transformer l'AST en instruction à pile.

    Merci d'avance de vos réponses.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par cdm1024 Voir le message
    La question est donc d'un point de vue conceptuelle pour calculer cette expression dois-je faire un parcours d'arbre ou convertir a destination d'une machine à pile.

    En effet une machine qui interprète des instructions ne doit-elle pas être à pile.
    je suppose que par "virtual machine " tu fais références a une "p-code machine".

    Dans ce cas, il est effectivement plus simple de faire un interpréteur avec accumulateur (a pile). Revers de la médaille : le code "compilé" sera plus verbeux (empilage/dépilage successifs) et le compilo sera plus complexe a écrire (si tu veux optimiser un minimum ton code "compilé").

Discussions similaires

  1. Création d'une machine virtuelle
    Par bsangoku dans le forum Débuter
    Réponses: 0
    Dernier message: 31/01/2010, 08h44
  2. Accéder à un serveur sur une machine virtuelle?
    Par Death83 dans le forum Administration
    Réponses: 2
    Dernier message: 21/11/2006, 16h13
  3. [FLASH] Création d'une visite virtuel
    Par Myogtha dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 01/02/2006, 22h38
  4. [J2ME]Une machine virtuel standart pour PDA
    Par Wln dans le forum Java ME
    Réponses: 3
    Dernier message: 30/06/2005, 09h45
  5. Création d'une imprimante virtuelle
    Par pilpagouna dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/06/2004, 13h38

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