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 :

convertisseur de classe C++ vers classe Java ?


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut convertisseur de classe C++ vers classe Java ?
    Bonjour à tous,

    Voilà, j'ai un projet à réaliser et je ne sais pas comment m'y prendre.

    Je dois réaliser un convertisseur de classe C++ en classe Java. En entrée, on a un fichier texte contenant une classe C++ et après traitement on doit obtenir une classe Java équivalente!

    Ce qui implique la gestion de la plupart des mots clés tels que les modificateurs d'accès private, protected, public; les variables static, const, auto, les constructeurs, ...
    La gestion de l'héritage multiple avec implements(coté java) doit aussi être pris en charge.

    Par contre, la surcharge des opérateurs ne doit pas être pris en compte.

    Si vous aviez des idées quant à la manière d'aborder les difficultés(par où commencer?, comment parcourir le fichier de départ?, manière de stocker les mots clés?, leur correspondance avec java?, ...), elles m'aideraient beaucoup.

    Pourriez-vous m'indiquer aussi des liens en relation avec le sujet?

    Un grand merci à tous.

  2. #2
    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
    Un parser C++ c'est un très très gros projet. Essaye d'utiliser quelque chose d'existant comme GCC XML, doxygen, PCCTS, SWIG
    http://www.gccxml.org/
    http://www.doxygen.org/
    http://www.empathy.com/pccts/
    SWIG est intéressant, car il sait analyser une classe C++ et pondre un wrapper Java.
    http://www.swig.org/
    Mais je vois de gros problèlmes à ton projet. Les types biensûr, ainsi que le fait qu'une classe C++ est découpée en 2 fichiers... et pour implements c'est faux car implements est utilisé dans le cas d'une interface, et y'a pas d'interface en C++. Et que faire des destructeurs, des templates, des appels de fonctions standards / non standards...

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut,

    et que faire si ta classe C++ dérive de plusieurs autres classes? vu qu'en Java on ne dérive au plus que d'une classe (et éventuellement plusieurs interfaces).

    ouloulou bon courage, ça va pas être simple cette histoire

  4. #4
    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
    Avant de parler technique de réalisation, comment comptes tu traduire les cas suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class A
    {
      int a1;
      int * a2;
      int &a3;
    };
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    enum Toto{tA, tB, tC};
     
    class B
    {
      Toto t;
    };
    Et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class RAII
    {
      RAII() {AcquireRessource();}
      ~RAII() {ReleaseResosurce();}
    };
    Voire traduire les classes de boost::ublas, boost::spirit, loki::* ...
    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.

Discussions similaires

  1. Class person vers class person : INotifyPropertyChanged
    Par rvzip64 dans le forum Windows Presentation Foundation
    Réponses: 13
    Dernier message: 30/09/2011, 16h08
  2. diagramme de classe vers code java
    Par khalil88 dans le forum Diagrammes de Classes
    Réponses: 2
    Dernier message: 21/09/2011, 18h41
  3. Règles de transformation d'un diagramme de classe UML vers classes Java
    Par Deallyra dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 01/04/2010, 17h00
  4. class pour table + class pour td = class td non fonctionnelle ?
    Par supergrey dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/05/2009, 08h13
  5. Conversion de classe Date vers classe Calendar
    Par Bateau_Ivre dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 21/07/2008, 11h46

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