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 :

Réversibilité / Compilation


Sujet :

Langages de programmation

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 13
    Points : 14
    Points
    14
    Par défaut Réversibilité / Compilation
    Bonjour à tous,

    Je ne penses pas que ce soit le cas, mais je me demandais si la traduction d'un code source écrit dans un langage quelconque vers un code binaire pour une architecture donnée est un processus réversible?

    Si non, étant donné le code d'un exécutable, peut-on aisément retrouver le langage dans lequel il a été écrit?

    Merci d'avance,
    Sid

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Je ne penses pas que ce soit le cas, mais je me demandais si la traduction d'un code source écrit dans un langage quelconque vers un code binaire pour une architecture donnée est un processus réversible?
    La réponse générale est non, mais il existe des cas parfaitement réversibles. Par exemple, la version machine d'une fonction qui ne prend pas d'argument, qui n'utilise pas de variables, qui n'exécute que que des opérations arithmétiques et logiques ainsi que des structures de contrôle tels if, do, while, etc. et qui retourne un résultat est facilement traductible en langage de haut niveau. La traduction est d'autant plus difficle que le code se sophistique, et totalement impossible à partir d'un certain degré de sophistication.

    Si non, étant donné le code d'un exécutable, peut-on aisément retrouver le langage dans lequel il a été écrit?
    Les fichiers requis (les "dépendances") par le programme pour s'exécuter sont les meilleures sources d'information. Supposons que nous sommes sous Windows par exemple. A ton avis, avec quel langage a écrit le programme toto.exe qui indique dans son en-tête qu'il a besoin de msvcp100.dll (MicroSoft Visual C Plus plus 10.0 DLL) pour fonctionner ?
    L'analyse des instructions et des protocoles (telles les conventions d'appel) utilisés aussi permet de se faire une idée du langage utilisé, mais c'est plus avancé et n'est pas nécessairement sans ambiguïté. Parfois l'utilisation conjointe des deux techniques est nécessaire. Suppose par exemple que le programme utilise la bibliothèque VCL. C'est donc sûrement du C++ ou du Delphi. Mais C++ et Delphi n'utilisent pas la même convention d'appel de fonction (il n'y a pas que cela comme différence bien sûr). La deuxième technique t'aidera alors à trancher.

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Merci Melem, d'avoir prit le temps de me répondre.

    Ayant eu un cours sur les languages de programmation ce semestre, je me rappelles maintenant qu'effectivement les noms (de variables, de fonctions, des objets, ..) ne survivent pas à l'étape de compilation et n'ont comme seul but que d'aider le programmeur en rajoutant une couche d'abstraction.

    A tout hasard, quelqu'un pourrait-il recommander un livre sur les concepts de langages? On nous a recommandé "Concepts of programming languages" de Sebesta mais après avoir été sur amazon pour voir les "reviews" j'hésites... Pour info, je n'ai aucun problème avec l'anglais, ni avec les maths/formalisme.

    Merci d'avance!
    Cédric

    [ame="http://www.amazon.com/Concepts-Programming-Languages-Robert-Sebesta/dp/0321193628"]Amazon.com: Concepts of Programming Languages, Sixth Edition (9780321193629): Robert W. Sebesta: Books@@AMEPARAM@@http://ecx.images-amazon.com/images/I/41DC1ZRY4NL.@@AMEPARAM@@41DC1ZRY4NL[/ame]

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

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    le problème de retrouver exactement le code d'origine n'est pas forcément pertinent... en terme de recherche, il existe quelques techniques partant d'un binaire, puis par abstract-matching et d'autres opérations réussissent à remonter en abstraction et recréer ainsi un programme ayant une "équivalence observationnelle" avec celui d'origine

    sur des codes de "taille industrielle", il s'agit souvent d'un C bas-niveau... utile pour la rétro-ingénierie de composants critiques dont on aurait "perdu" les sources (ou des concurrents )
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 309
    Points : 928
    Points
    928
    Par défaut
    Citation Envoyé par AlterSid Voir le message
    A tout hasard, quelqu'un pourrait-il recommander un livre sur les concepts de langages? On nous a recommandé "Concepts of programming languages" de Sebesta mais après avoir été sur amazon pour voir les "reviews" j'hésites... Pour info, je n'ai aucun problème avec l'anglais, ni avec les maths/formalisme.
    Tu as http://books.google.com/books?id=FhJ...page&q&f=false et http://books.google.com/books?id=8m3...page&q&f=false qui sont très bien. Gilles Dowek est un excellent pédagogue.

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par TropMDR Voir le message
    Tu as http://books.google.com/books?id=FhJ...page&q&f=false et http://books.google.com/books?id=8m3...page&q&f=false qui sont très bien. Gilles Dowek est un excellent pédagogue.
    Fantastique, merci beaucoup pour la référence!

  7. #7
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Réponses: 15
    Dernier message: 10/10/2002, 19h19
  2. [Installation] Borland Compiler 5.5 sous XP
    Par Ligey dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 28/09/2002, 22h45
  3. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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