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 :

Runtime et différences entre compilateurs


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    dfg
    dfg est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Par défaut Runtime et différences entre compilateurs
    Bonjour,

    Parfois, la compilation de certaines intructions dans un certain langage (C par exemple) produit des comportements différents selon la plateforme et le compilateur utilisé.

    Cela est-il dû uniquement au fait que chaque compilateur a son propre runtime, ou peut-il y avoir d'autres raisons (en restant dans les différences entre compilateurs).

    Formulé autrement : la spécification d'un langage est-elle implémentée entièrement par le runtime (la bibliothèque d'exécution, i.e. la base du langage pour le compilateur considéré).

    Merci !

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

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    tu dois confondre runtime et lib standard

    effectivement, selon les langages, les normes sont plus ou respectées (regardes les différences entre gnu c++ ; vs c++ ; comeau c++), et les lib standards sont plus ou moins optimisées
    ça peut faire une grosse différence au final, alors qu'au premier abord on aurait pu se dire qu'en respectant les normes ou en prenant des lib "multi-plateformes" tout aurait été pareil
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    dfg
    dfg est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Par défaut
    merci gorgonite d'avoir répondu,

    c'est vrai que je vois mal la limite entre la bibliothèque standard et le runtime.
    En gros la bibliothèque implémente les fonctions standards, mais théoriquement on peut changer de bibliothèque pour un même compilo.
    Par contre le runtime implémente les types de base, mots réservés et opérateurs. Donc il est plus proche du compilateur.

    Je fait cette distinction au fait qu'on peut créer un programme sans appeler aucune fonction de la bibliothèque standard, si on veut. Par contre on aura toujours types de base, mots réservés et opérateurs sans rien inclure comme header (en gardant en tête l'exemple du langage C).

    Où est-ce que je me trompe ?

  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 : 41
    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 dfg Voir le message
    Par contre le runtime implémente les types de base, mots réservés et opérateurs. Donc il est plus proche du compilateur.

    Je fait cette distinction au fait qu'on peut créer un programme sans appeler aucune fonction de la bibliothèque standard, si on veut. Par contre on aura toujours types de base, mots réservés et opérateurs sans rien inclure comme header (en gardant en tête l'exemple du langage C).

    Où est-ce que je me trompe ?

    effectivement, on peut se passer de la lib standard si l'on a écrit la sienne...
    en revanche, je ne vois toujours pas le rapport entre la grammaire du langage et le runtime

    perso, j'aurais plutôt situé le runtime au niveau des interprètes de bytecode, ou des interprètes tout court...
    par exemple le GC fait parti du Runtime .Net, mais pas de CLI
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    dfg
    dfg est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    en revanche, je ne vois toujours pas le rapport entre la grammaire du langage et le runtime

    perso, j'aurais plutôt situé le runtime au niveau des interprètes de bytecode, ou des interprètes tout court...
    par exemple le GC fait parti du Runtime .Net, mais pas de CLI
    Ben là tu parles du runtime environment c'est à dire la machine virtuelle.
    Et quand tu dis "interprètes tout court" tu parles des shells ?

    Le runtime dont je parle c'est le runtime library.

    En fait là je me base beaucoup sur wikipédia vu qu'il y a peu de ressources sur le net à propos de qu'est-ce que le runtime, ou quelle est la différence entre runtime et VM. Et même sur wiki c'est flou...

  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 : 41
    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 dfg Voir le message
    Ben là tu parles du runtime environment c'est à dire la machine virtuelle.

    Le runtime dont je parle c'est le runtime library.
    la runtime library est utilisée par le runtime environment...
    j'ai déjà écrit un compilateur vers code natif, et je ne vois vraiment pas à quoi peut correspondre cette notion de runtime sur "vrais langages compilés"


    Citation Envoyé par dfg Voir le message
    En fait là je me base beaucoup sur wikipédia vu qu'il y a peu de ressources sur le net à propos de qu'est-ce que le runtime, ou quelle est la différence entre runtime et VM. Et même sur wiki c'est flou...
    flou et pas toujours rigoureux
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

Discussions similaires

  1. [AC-2010] Différence entre le runtime et access 2010 sur des états
    Par Razmote dans le forum Runtime
    Réponses: 5
    Dernier message: 03/07/2014, 15h42
  2. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  3. Différence entre TCP, UDP, ICMP
    Par GliGli dans le forum Développement
    Réponses: 1
    Dernier message: 13/09/2002, 08h25
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 15h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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