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

Langages de programmation Discussion :

Créer un langage de programmation pour ensuite interpréter du PHP


Sujet :

Langages de programmation

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 93
    Points : 40
    Points
    40
    Par défaut Créer un langage de programmation pour ensuite interpréter du PHP
    Bonjour a tous,

    J'ai comme sujet de stage de créer un mini-langage de programmation avec des instructions ... et que ensuite cela me génère à partir de ces instructions le code PHP correspondant. Par exemple :

    Nouveau langage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <*repertoire_image("img/photo") *>
    <*pour tout elt(id_image,titre) de la table(BDD.nomTable) aux attributs(id,titre) FAIRE
    nouveau_fichier(elt.id_image
    ...
    FIN POUR
    *>
    Au final, je dois obtenir un fichier php comme suit :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php $rep_image = "img/photo" ?>
    <?php
    //connexion base
    $req = mysql_query("select * from table");
    while($result = mysql_fetch_array($req))
    {
    $new = fopen ($result['id'].".php","w");
    ...
    }

    Comment faire ceci ?

    En fait, Je ne vois pas comment faire pour que mon programme (écrit en C ???) lise le fichier .newlanguage et remplace tout par du code PHP correspondant.

    Il faut bien définir quelque part qu'il remplace quelque chose par quelque chose ... par exemple, dés qu'il trouve une balise <* il la remplace par <?php ...

    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    a priori, un préprocesseur suffirait... lis les premiers chapitres de ce cours :
    http://www.enseignement.polytechniqu...t/compil/poly/

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 93
    Points : 40
    Points
    40
    Par défaut
    Si je comprend bien, tu me conseille d'utiliser de l'assembleur alors ?

    Le problème pour mon projet, c'est que je ne vois pas comment débuter .

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    ben tu comprends mal...

    les premiers chapitres parlent de parseurs, de grammaires, analyse syntaxique, sémantique, etc

  5. #5
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 93
    Points : 40
    Points
    40
    Par défaut
    Donc faut que j'utilise le lex et yacc.

    Et saurais tu ou sont définis les fonctions PHP ?

  6. #6
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par psgkiki Voir le message
    Et saurais tu ou sont définis les fonctions PHP ?

    comment cela ?
    tu es censé générer le code php à la main par transformation sur ton Arbre de Syntaxe Asbtraite... pourquoi veux-tu définir des fonctions php ?

  7. #7
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 93
    Points : 40
    Points
    40
    Par défaut
    nan c'est juste pour information.

    Par exemple, en C, le fichier stdio.h contient toutes les fonctions que le langage utilise.

    Quel fichier fait pareil pour PHP ?

  8. #8
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    ben aucun, l'interpréteur se débrouille

    http://fr.php.net/manual/fr/ si tu veux avoir un listing

  9. #9
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 93
    Points : 40
    Points
    40
    Par défaut
    bon ba je vais me lancer dans la création d'un mini-interpréteur PHP alor

  10. #10
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    je croyais que le but de ton programme était justement de générer le code php...
    Je ne vois pas pourquoi tu veux faire un mini interpréteur alors que n'importe quel navigateur digne de ce nom peut le faire.

  11. #11
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Je ne vois pas pourquoi tu veux faire un mini interpréteur alors que n'importe quel navigateur digne de ce nom peut le faire.
    Je suppose que tu veux dire "serveur HTTP", à ma connaissance, PHP n'a jamais été utilisé comme langage côté client (dieu merci, il y en a déjà trop côté serveur...).

    Cependant je suis d'accord avec ta remarque, le but n'était pas de faire un interprète PHP mais bien plutôt de traduire bêtement d'un mini-langage spécifique en PHP.

    --
    Jedaï

  12. #12
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 93
    Points : 40
    Points
    40
    Par défaut
    Exact, mon but est de traduire bêtement d'un mini-langage spécifique en PHP.

    Mais comment tu ferais ?

    merci de ta réponse

    Cordialement

  13. #13
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    donc si c'est juste traduire un mini langage en php, il faut revenir à ce qui a été cité plus haut :
    1. Définir la grammaire de ton langage
    2. Créer l'analyseur lexical
    3. Créer l'analyseur syntaxique
    4. Créer l'analyseur sémantique
    5. ...

    C'est comme lorsque tu fais un mini compilateur, sauf qu'au lieu de générer du langage machine, tu génères du code php.

Discussions similaires

  1. Comment créer un langage de programmation ?
    Par @v@lon dans le forum Langages de programmation
    Réponses: 27
    Dernier message: 16/06/2014, 23h04
  2. Quel langage de programmation pour ce projet?
    Par yongblood dans le forum Windows
    Réponses: 6
    Dernier message: 11/01/2007, 02h41
  3. Quel langage de programmation pour des programmes simples ?
    Par Pierre.g dans le forum Langages de programmation
    Réponses: 18
    Dernier message: 22/11/2006, 15h22
  4. Aide sur choix de langage de programmation pour PC et Mac
    Par benouille69 dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 11/11/2006, 19h30
  5. Choix d'un langage de programmation pour une application orientée web
    Par Mick DG dans le forum Général Conception Web
    Réponses: 10
    Dernier message: 12/07/2006, 14h45

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