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 :

Outils de traduction des langages


Sujet :

Langages de programmation

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 62
    Points
    62
    Par défaut Outils de traduction des langages
    Bonsoir,
    je suis à la recherche d' un outil (programme) gratuit qui permet de traduire un programme ecris en un langage de haut niveau en un autre programme dans un autre langage de programmation de haut niveau.

    par exemple passer du C++ à java.

    merci d' avance.

  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
    tu n'as pas de traduction directe possible de C++ vers Java... en revanche, C++ vers un sous-ensemble de C, c'est possible

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    tu n'as pas de traduction directe possible de C++ vers Java... en revanche, C++ vers un sous-ensemble de C, c'est possible
    Non non… il n'existe pas actuellement de traducteur directe de C++ vers Java, et il n'en existera probablement jamais. Cependant, rien ne montre que ce n'est pas possible. Je ne vois d'ailleurs pas qu'est ce qui te permet d'être si catégorique ^_^ En fait, je suis même convaincu que c'est possible, mais avec au final un programme complètement illisible.

    Mais bon, au final ça revient au même pour Legide

  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
    Citation Envoyé par Garulfo Voir le message
    Non non… il n'existe pas actuellement de traducteur directe de C++ vers Java, et il n'en existera probablement jamais. Cependant, rien ne montre que ce n'est pas possible. Je ne vois d'ailleurs pas qu'est ce qui te permet d'être si catégorique ^_^ En fait, je suis même convaincu que c'est possible, mais avec au final un programme complètement illisible.


    je disais possible avec les outils actuellement... bien sûr

    déjà il faut avoir un parseur GLR pour C++, puis transformer les templates "simples" en génériques, reconstruire les BCRT vers une hiérarchie "classique" de classe, faire une substitution de toutes les classes "standards" vers leurs équivalents ou périphrases (ça peut parfois être plus lourd), etc

    je ne vois pas l'intérêt d'un tel outil.

    Enfin, c'est plus facile qu'un convertisseur Ada vers Java pour les programmes fortement concurrents



    en revanche, parseur GLR pour C++ vers AST "générique", et export d'un sous-ensemble de C (évitant ainsi l'allocation de registre & cie), c'est BEAUCOUP plus simple à réaliser

  5. #5
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    il y a f2c , pour passer de Fortran à C

  6. #6
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 62
    Points
    62
    Par défaut
    Bonjour à tous,
    merci pour les réponses.
    je voudrai traduire un programme écrit en c++ vers un autre langage de programmation. existe t-il actuellement un outil qui permet de faire ça?

  7. #7
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    ton cerveau et tes doigts

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    [...]
    je ne vois pas l'intérêt d'un tel outil.
    Moi non plus

  9. #9
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Citation Envoyé par gorgonite
    je ne vois pas l'intérêt d'un tel outil.
    Moi non plus
    Moi si: Il y a dans le monde des milliards de lignes de codes écrits dans les langages les plus divers (COBOL, fortran, ...), et qui entraînent des frais de maintenance énorme parce qu'il faut les machines et les hommes pour les faire tourner et simplement les mettre à jour. De plus en plus, la tendance ne sera plus de fabriquer de nouveaux programmes, mais de transformer les programmes existants testés et éprouvés dans les langages évolués actuels.

    Dire "utilise tes doigts et ton cerveau", c'est comme dire "utilise tes pieds plutôt que le train". Pourquoi faire de l'informatique, alors ? Utilise un stylo et du papier...

    D'ailleurs, il existe déjà des programmes ou des projets qui font ça. Je sais qu'il y a plusieurs projets opensource (COBOL2CPP, de mémoire), et j'ai moi-même écrit un programme pour passer du VB au C++.

  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 : 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 10_GOTO_10 Voir le message
    D'ailleurs, il existe déjà des programmes ou des projets qui font ça. Je sais qu'il y a plusieurs projets opensource (COBOL2CPP, de mémoire), et j'ai moi-même écrit un programme pour passer du VB au C++.


    du VB à un sous-ensemble de C++ je suppose...


    C++ est un cas à part dans le monde de la programmation, qui explique que tant de personne disent tant d'absurdités à son sujet (sur ce forum entre autre )

    autant je vois l'intérêt de convertir la majorité des langages "industriels" existants pour ayant existé vers un sous-ensemble de C-Ansi de manière à pouvoir créer des lib réutilisables dans 90% des langages actuels (et futurs je l'espère )
    Alors que passer d'un langage à un autre sachant que cela entraine toujours une perte de performance dues à la lourdeur de certaines synthèses automatiques "haut niveau"... là désolé, j'ai plus de mal

  11. #11
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    un sous-ensemble de C++ je suppose...
    Tu utilises un sur-ensemble du C++, toi ? Chapeau.

  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 : 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 10_GOTO_10 Voir le message
    Tu utilises un sur-ensemble du C++, toi ? Chapeau.
    certains ont leur meta-langages au dessus de C++ car le moteur de template à beau être super, il n'est pas toujours suffisant... c'est donc un "sur-ensemble"

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par 10_GOTO_10 Voir le message
    Tu utilises un sur-ensemble du C++, toi ? Chapeau.
    Ça aurait pu être une traduction de VB vers le C++... mais il suppose que tu te limite à un sous-ensemble du langage. En quoi est-ce anormal ? Puis on parle effectivement souvent de sur-ensemble de toute façon lorsqu'on considère l'aspect métalangage des templates.

    Bon sinon, quoique tu en dises la mode n'est pas du tout à la traduction automatique d'un langage vers un autre. Que quelques projets open-source vise un tel objectif est une chose, que ce soit répandu en est une autre. Au mieux on retrouve des petits jouets, mais rien de suffisamment impressionnant pour être utilisé de manière fiable sur de grand système.

    Plus sérieusement, il y a des études d'analyses statiques pour pouvoir manipuler du code — notamment pour en supprimer des morceaux — en s'assurant que le système fonctionne toujours de la même manière. Cf. les « vieux » travaux de S. Blazy par exemple.

    Finalement, transformer du Cobol en C est une chose… le faire pour que le code C soit lisible est en une autre bien plus complexe et qui est vraiment digne d'intérêt sous tout les aspects… mais passer de C++ à Java, ça je ne comprends pas vraiment l'intérêt.

  14. #14
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par legide Voir le message
    je voudrai traduire un programme écrit en c++ vers un autre langage de programmation. existe t-il actuellement un outil qui permet de faire ça?
    Puisque traduire un programme complet n'a a priori aucun intéret (surtout pour aller vers un langage plus lent), c'est sans doute que tu veux récupérer des librairies. Hors qui dit librairie en C++ dit bien souvent Template. Et qui dit Template en C++ dit intraduisible vers Java car il n'y a pas l'équivalent (les génériques sont bien moins puissants). Donc ce n'est pas possible. T'as plus qu'à faire chauffer les phalanges, ou plus bêtement à faire un binding.

  15. #15
    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 alex_pi Voir le message
    Hors qui dit librairie en C++ dit bien souvent Template. Et qui dit Template en C++ dit intraduisible vers Java car il n'y a pas l'équivalent (les génériques sont bien moins puissants).

    pas forcemment... tu exécutes le moteur de template afin de produire le code réellement utilisé (et sans template ^^), puis tu traduis
    mais la on aura le problème de l'héritage multiple en C++ vs héritage simple + interfaces multiples en Java, qu'il faudra résoudre en calculant les interfaces minimales utilisées (un peu comme en OCaml, sauf que l'inférence de type sur C++ c'est pas encore ça ) et en générant donc de nouveaux types intermédiaires, etc

    enfin, comme je le disais : ce n'est pas réalisable avec les outils actuels... mais rien ne dit qu'un tel outil ne pourra être créé (même si je ne vois pas d'intérêt à cela)

  16. #16
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    pas forcemment... tu exécutes le moteur de template afin de produire le code réellement utilisé (et sans template ^^), puis tu traduis
    C'est pour ça que j'ai parlé de traduire les libs et pas les programmes complets ("clos"), puisque dans le cas d'une lib, tu ne sais justement pas sur quoi tu vas instancier !

    Et puis, faire ce que tu dis nécessite d'avoir en plus la traduction Java -> C++, puisque tu ne peux faire tourner ton moteur de template que sur un type C++

  17. #17
    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 alex_pi Voir le message
    C'est pour ça que j'ai parlé de traduire les libs et pas les programmes complets ("clos"), puisque dans le cas d'une lib, tu ne sais justement pas sur quoi tu vas instancier !
    arf, j'avais oublié ce cas effectivement, je parlais effectivement des problèmes sur un programme clos


    Citation Envoyé par alex_pi Voir le message
    Et puis, faire ce que tu dis nécessite d'avoir en plus la traduction Java -> C++, puisque tu ne peux faire tourner ton moteur de template que sur un type C++
    je n'ai pas parlé d'appliquer des templates à Java
    nb : il existe désormais des outils pour faire de la méta-programmation sur Java (un espèce de moteur de templates )

  18. #18
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    je n'ai pas parlé d'appliquer des templates à Java
    C'était juste dans l'idée d'avoir une lib C++ avec templates, de la transformer en pseudo lib java, et au moment de l'utiliser, tu semblais plus ou moins suggérer qu'on devait pouvoir instancier le template à ce moment là, mais on est dans une situation ou on utilise la lib dans java, donc l'instanciation s'y fait, donc il faut remonter à C++. M'enfin bref, on sort un peu trop du sujet

  19. #19
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Reste que c'est faisable. On pourrait transformer le code C++ en un programme java qui simule l'assembleur produit par le C++… débile en pratique, non portable à fond probablement, mais faisable !

  20. #20
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    débile en pratique, non portable à fond probablement, mais faisable !
    Ahlala, pour une fois que je tentais de ne pas faire mon théoricien borné :p

    Ok, ok, les deux sont turing complets, donc on peut simuler l'un dans l'autre !

Discussions similaires

  1. [Éditeur Web] Outil de théorie des langages
    Par Agoudard dans le forum Qt
    Réponses: 3
    Dernier message: 31/03/2011, 12h05
  2. [Débat] Que pensez-vous des langages à typage dynamique?
    Par Eusebius dans le forum Langages de programmation
    Réponses: 14
    Dernier message: 16/06/2004, 12h12
  3. Changement de langue dynamique (D6 et outils de traduction)
    Par agon dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2002, 16h15

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