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 :

Un parser efficace


Sujet :

Langages de programmation

  1. #1
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut Un parser efficace
    Salut, salut,

    je suis à la recherche d'un parser efficace basé sur des templates, si possible en c/c++, java ou python.

    Si quelqu'un a déjà utilisé un truc pratique...

    Merki.

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Un parser, c'est vague... Que veux-tu "parser" (xml, html, csv, etc.)? Donne-nous plus de précision.

    Thierry

    P.S. Le langage C/C++ n'existe pas. C'est l'un ou l'autre!
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  3. #3
    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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    +1 avec Thierry

    si tu veux parser :
    • un langage de programmation => flex/bison
    • un fichier xml => xerces
    • un truc bien spécifique => la bib appropriée
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  4. #4
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Pour un log, un fichier xml, html... Je dirais Perl
    Ca dépend de la compexité du parsing et du type de fichier bien entendu...

  5. #5
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut
    En fait je pensais vraiment à un parser le plus générique possible,

    je n'ai jamais utilisé des trucs comme antlr ou simpleparse (python), et il y en a bien d'autres, donc si quelqu'un à déjà utilisé de tels outils.

    (sinon
    # un langage de programmation => flex/bison
    je l'ai déjà pas mal utilisé mais je le trouve généralement trop complexe à utiliser
    # un fichier xml => xerces
    effectivement il marche bien mais il est très spécifique xml, et pas vraiment basé sur les templates (à moins de considérer les dtd/schemas comme des templates)
    # un truc bien spécifique => la lib appropriée
    vraiment spécifique, et il me semble bien difficile de trouver une librairie spécifique à un fichier que l'on défini soit même)

  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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    Citation Envoyé par Mucho Voir le message
    # un langage de programmation => flex/bison
    je l'ai déjà pas mal utilisé mais je le trouve généralement trop complexe à utiliser

    perso, je trouve que c'est super utile pour les front-end de compilateurs


    Citation Envoyé par Mucho Voir le message
    # un truc bien spécifique => la lib appropriée
    vraiment spécifique, et il me semble bien difficile de trouver une librairie spécifique à un fichier que l'on défini soit même)
    ben tout dépend de ce que tu souhaites... ^^
    par exemple, y a des belles lib pour les fichiers INI
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  7. #7
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut
    Envoyé par Mucho Voir le message
    # un langage de programmation => flex/bison
    je l'ai déjà pas mal utilisé mais je le trouve généralement trop complexe à utiliser

    perso, je trouve que c'est super utile pour les front-end de compilateurs
    Je suis complètement d'accord mais un compilateur est encore un cas très spécifique.
    Idem pour les fichiers ini qui sont des fichiers dans un format bien spécifique.


    Personne n'a donc utilisé de parser générique par template ? (un peu dans le style Velocity mais dans un but de lecture et non d'écriture)

  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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    Citation Envoyé par Mucho Voir le message
    Je suis complètement d'accord mais un compilateur est encore un cas très spécifique.
    Idem pour les fichiers ini qui sont des fichiers dans un format bien spécifique.


    Personne n'a donc utilisé de parser générique par template ? (un peu dans le style Velocity mais dans un but de lecture et non d'écriture)


    flex/bison peuvent faire bien plus... ce n'est pas limité à l'utilisation compilateur


    par ailleurs, un front-end pour compilateur n'a rien de très spécifique, étant donné qu'on peut a priori donner la syntaxe et la grammaire qu'on souhaite à unl langage
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  9. #9
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut
    oui je suis encore tout à fait d'accord,
    c'est pour ça que je disais dans mon premier message que je trouvait un parser type lex/yacc trop complexe à utiliser. C'est très bien pour un compilateur puisque par essence complexe, mais ma question est juste d'avoir des pistes pour des parsers plus simples basés sur des templates(et donc simples à écrire, à mettre en place et à modifier).

    Par exemple : si je décrit un fichier type ini auquel je veux ajouter quelques concepts comme par exemple un type de données
    => utiliser flex/bison me semble trop complexe pour un besoin si simple
    => la lib. spécifique pour les .ini ne fonctionne plus
    Il me semble que c'est vraiment un concept très proche de velocity (mais pour la lecture)

  10. #10
    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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    as-tu regardé du côté du parseur intégré dans Boost ?
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  11. #11
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut
    Merci

    je ne connaissais pas ce parser (Boost.Spirit) il a l'air de correspondre à ce que je cherche,
    du coup je me demandais si tu l'as déjà utilisé et ce que tu en penses

  12. #12
    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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    Citation Envoyé par Mucho Voir le message
    du coup je me demandais si tu l'as déjà utilisé et ce que tu en penses

    ben je l'avais juste testé, mais j'ai rien fait de concret avec... donc je ne pourrais t'en dire plus qu'une présentation
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 615
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 615
    Billets dans le blog
    2
    Par défaut
    tu as awk sur unixoide aussi...

  14. #14
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    Citation Envoyé par Mucho Voir le message
    Merci

    je ne connaissais pas ce parser (Boost.Spirit) il a l'air de correspondre à ce que je cherche,
    du coup je me demandais si tu l'as déjà utilisé et ce que tu en penses
    tester et approuvé pour tout type de grammaire/parsing pas trop complexe. Si jamais la grammaire deviens trop grosse, il faut mieux passer par du flex/bison, mais pour un petit langage, c'est du tout bon (je fais régulièrement des petits langages de description hyper spécifiques avec en quelques heures (voir moins avec de l'experience et des helper tout fait))
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  15. #15
    Expert confirmé
    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
    Par défaut
    Dans le genre Boost.Spirit en mieux (peut-être ), vous avez Parsec en Haskell, ça a une philosophie proche de Spirit, mais avec l'inférence de type et l'approche fonctionnelle, il est plus facile de l'utiliser et de l'étendre.
    Et Haskell est tout simplement un langage de plus haut niveau que C++, ce qui en fait un choix plus logique pour un petit parser et un petit logiciel pour l'utiliser.

    --
    Jedaï

Discussions similaires

  1. comment parser un fichier xml efficacement ?
    Par isoman dans le forum C#
    Réponses: 2
    Dernier message: 08/12/2008, 10h00
  2. [JAXP] com.sun.xml.parser.ValidatingParser
    Par yolepro dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 05/11/2008, 15h36
  3. Solution efficace pour parser et decoder un String
    Par manubot dans le forum Langage
    Réponses: 1
    Dernier message: 14/08/2008, 11h24
  4. Parser XML
    Par miloux32 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/07/2003, 03h17
  5. [langage] Continuer a parser une ligne
    Par D[r]eadLock dans le forum Langage
    Réponses: 5
    Dernier message: 30/09/2002, 18h49

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