Qu’est-ce que «runtime»?

J’ai entendu parler de choses telles que “C Runtime”, “Visual C ++ 2008 Runtime”, “.NET Common Language Runtime”, etc.

  • Qu’est-ce que ” runtime ” exactement?
  • De quoi est-ce fait?
  • Comment interagit-il avec mon code? Ou peut-être plus précisément, comment mon code est-il contrôlé par celui-ci?

Lors du codage du langage d’assemblage sous Linux, je pouvais utiliser l’instruction INT pour effectuer l’appel système. Donc, le runtime n’est-il rien d’autre qu’un tas de fonctions préfabriquées qui enveloppent la fonction de bas niveau dans des fonctions plus abstraites et de haut niveau? Mais cela ne ressemble-t-il pas davantage à la définition de la bibliothèque, pas à celle du runtime?

Est-ce que “runtime” et ” runtime library ” sont deux choses différentes?

AJOUTER 1

Ces jours-ci, je pense que Runtime a quelque chose en commun avec la machine virtuelle , telle que JVM. Voici la citation qui mène à une telle pensée:

Ce processus de compilation est suffisamment complexe pour être divisé en plusieurs couches d’abstraction, et implique généralement trois traducteurs: un compilateur, une implémentation de machine virtuelle et un assembleur. — Les éléments des systèmes informatiques (Introduction, la route vers le matériel)

AJOUTER 2

Le livre Expert C Programming: Deep C Secrets . Le chapitre 6 Structures de données d’exécution est une référence utile à cette question.

Runtime décrit les logiciels / instructions exécutés pendant l’ exécution de votre programme, en particulier les instructions que vous n’avez pas écrites explicitement, mais nécessaires à la bonne exécution de votre code.

Les langages de bas niveau tels que C ont une très petite exécution (le cas échéant). Des langages plus complexes comme Objective-C, qui permettent le passage dynamic de messages, ont un temps d’exécution beaucoup plus long.

Vous avez raison de dire que le code d’exécution est le code de la bibliothèque, mais le code de la bibliothèque est un terme plus général, décrivant le code produit par n’importe quelle bibliothèque. Le code d’exécution est spécifiquement le code requirejs pour implémenter les fonctionnalités du langage lui-même.

Le runtime est un terme général qui fait référence à toute bibliothèque, structure ou plate-forme sur laquelle votre code s’exécute.

Les runtimes C et C ++ sont des ensembles de fonctions.

Le runtime .NET contient un interpréteur de langage intermédiaire , un ramasse-miettes, etc.

Selon Wikipedia: bibliothèque d’exécution / système d’ exécution .

En programmation informatique, une bibliothèque d’exécution est une bibliothèque de programme spéciale utilisée par un compilateur pour implémenter des fonctions intégrées dans un langage de programmation, lors de l’exécution (exécution) d’un programme informatique. Cela inclut souvent des fonctions pour les entrées et les sorties, ou pour la gestion de la mémoire.


Un système d’exécution (également appelé système d’exécution ou simplement runtime) est un logiciel conçu pour prendre en charge l’exécution de programmes informatiques écrits dans un langage informatique. Le système d’exécution contient des implémentations de commandes basiques de base et peut également implémenter des commandes de niveau supérieur et prendre en charge la vérification de type, le débogage et même la génération et l’optimisation du code. Certains services du système d’exécution sont accessibles au programmeur via une interface de programmation d’application, mais d’autres services (tels que la planification des tâches et la gestion des ressources) peuvent être inaccessibles.


Re: votre edit , “runtime” et “runtime library” sont deux noms différents pour la même chose.

L’ environnement d’exécution ou d’ exécution est la partie d’une implémentation de langage qui exécute le code et est présente au moment de l’ exécution ; la partie de compilation de l’implémentation est appelée l’ environnement de traduction dans le standard C.

Exemples:

  • le runtime Java est constitué de la machine virtuelle et de la bibliothèque standard

  • un runtime C commun est constitué du chargeur (qui fait partie du système d’exploitation) et de la bibliothèque d’exécution, qui implémente les parties du langage C qui ne sont pas intégrées dans l’exécutable par le compilateur; dans les environnements hébergés, cela inclut la plupart des parties de la bibliothèque standard

D’après ce que je comprends, le temps d’exécution est exactement ce que cela signifie – le moment où le programme est exécuté. Vous pouvez dire que quelque chose se produit à l’ exécution / à l’ exécution ou à la compilation.

Je pense que la bibliothèque d’ exécution et d’ exécution doit être (si ce n’est pas) deux choses distinctes. “C runtime” ne me semble pas correct. Je l’appelle “bibliothèque d’exécution C”.

Réponses à vos autres questions: Je pense que le terme runtime peut être étendu pour inclure également l’environnement et le contexte du programme lorsqu’il est exécuté.

  • il se compose de tout ce qui peut être appelé “environnement” au moment où le programme est exécuté, par exemple d’autres processus, l’état du système d’exploitation et les bibliothèques utilisées, l’état des autres processus, etc.
  • il n’interagit pas avec votre code dans un sens général, il définit simplement dans quelles circonstances votre code fonctionne, ce qui est disponible pendant l’exécution.

Cette réponse est en quelque sorte juste mon opinion, pas un fait ou une définition.

Matt Ball a répondu correctement. Je dirais à ce sujet avec des exemples.

Pensez à exécuter un programme compilé dans le compilateur Turbo-Borland C / C ++ (version 3.1 de l’année 1991) et laissez-le s’exécuter sous une version 32 bits de Windows comme Win 98/2000, etc.

C’est un compilateur 16 bits. Et vous verrez que tous vos programmes ont des pointeurs 16 bits. Pourquoi est-ce si votre système d’exploitation est 32bit? Parce que votre compilateur a configuré l’environnement d’exécution 16 bits et que la version 32 bits de l’OS l’a supscope.

Ce que l’on appelle communément JRE (Java Runtime Environment) fournit un programme Java avec toutes les ressources nécessaires à l’exécution.

En réalité, l’environnement d’exécution est le produit de l’idée des machines virtuelles. Une machine virtuelle implémente l’interface brute entre le matériel et ce qu’un programme peut avoir besoin d’exécuter. L’environnement d’exécution adopte ces interfaces et les présente à l’usage du programmeur. Un développeur de compilateur aurait besoin de ces fonctionnalités pour fournir un environnement d’exécution à ses programmes.

Exécutez le temps exactement où votre code entre en vie et vous pouvez voir beaucoup de choses importantes que votre code fait.

Runtime a la responsabilité d’allouer de la mémoire, de libérer de la mémoire, en utilisant le sous-système du système d’exploitation tel que (Services de fichiers, Services IO .. Services réseau, etc.)

Votre code s’appellera “WORKING IN THEORY” jusqu’à ce que vous exécutiez pratiquement votre code. et Runtime est un ami qui aide à réaliser cela.

un runtime pourrait indiquer la phase actuelle de la vie du programme (durée d’exécution / compilation / temps de chargement / temps de liaison) ou une bibliothèque d’exécution, qui constitue les actions basiques de base qui interfacent avec l’environnement d’exécution. ou cela pourrait signifier un système d’exécution, qui est identique à un environnement d’exécution.

dans le cas des programmes C, le runtime est le code qui configure la stack, le tas, etc., ce qui est requirejs par l’environnement C. c’est essentiellement l’environnement qui est promis par la langue. (il pourrait avoir un composant de bibliothèque d’exécution, crt0.lib ou quelque chose comme ça en cas de C)

J’ai trouvé que la structure de dossiers suivante constitue un contexte très perspicace pour comprendre ce qu’est l’ runtime :

Temps d'exécution de Mozilla XulRunner

Vous pouvez voir qu’il y a la ‘ source ‘, il y a le ‘ SDK ‘ ou ‘Software Development Kit’ et il y a ensuite le Runtime , par exemple. le truc qui est exécuté – à l’exécution. Son contenu est comme:

contenu du dossier runtimes

Le zip win32 contient .exe -s et .dll -s.

Donc par exemple. le runtime C serait les fichiers comme celui-ci – les bibliothèques d’exécution C, .so-s ou .dll – que vous exécutez au moment de l’exécution, rendues spéciales par leur (ou leur contenu) ou leur inclusion dans la définition du Langage C (sur papier), puis implémenté par votre implémentation C de choix. Et puis vous obtenez le temps d’exécution de cette implémentation, pour l’utiliser et pour en tirer parti.

C’est, avec un peu de polarisation, les fichiers exécutables dont les utilisateurs de votre nouveau programme basé sur C auront besoin. En tant que développeur d’un programme basé sur C, vous aussi, mais vous avez également besoin du compilateur C et des en-têtes de la bibliothèque C; les utilisateurs n’en ont pas besoin

Runtime signifie essentiellement lorsque le programme interagit avec le matériel et le système d’exploitation d’une machine. C n’a pas son propre runtime, mais demande à l’exécution d’un système d’exploitation (qui fait essentiellement partie de ram) de s’exécuter.

Le temps d’exécution est l’instance où vous ne connaissez pas le type d’objects créé lors de son exécution, la création d’objects est basée sur certaines conditions ou sur un travail de calcul. En revanche, le temps de compilation est l’instance où les objects requirejs sont définis par vous avant ses exécutions.

Ces sections de la documentation MSDN traitent de la plupart de vos questions: http://msdn.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx

J’espère que ça aide.

Merci Damian

Le runtime est quelque peu opposé à la conception et à la compilation / au moment de la compilation. Historiquement, cela vient d’un environnement mainframe lent où le temps machine était cher.

Le runtime est la période pendant laquelle un programme est en cours d’exécution. Il commence quand un programme est ouvert (ou exécuté) et se termine par le programme quitter ou se fermer.

Le runtime est un terme technique, utilisé le plus souvent dans le développement de logiciels. Il est généralement vu dans le contexte d’une “erreur d’exécution”, qui est une erreur qui se produit pendant l’exécution d’un programme. Le terme “erreur d’exécution” est utilisé pour distinguer d’autres types d’erreurs, telles que les erreurs de syntaxe et les erreurs de compilation, qui surviennent avant l’exécution d’un programme.

Lorsqu’un programme est en phase d’exécution, l’application est chargée dans la RAM. Cela inclut le fichier exécutable et les bibliothèques, frameworks ou autres fichiers référencés par le programme. A la fermeture du programme, la période d’exécution se termine et la mémoire utilisée par le programme est mise à la disposition des autres programmes.

Temps écoulé pendant l’exécution du programme. Mais c’est trop général. Dire, la durée après la compilation du programme, quand OS présente la recette au programmeur pour interagir ou voir les résultats de ce qu’il a développé, s’appelle runtime. Aucune erreur de syntaxe, etc., n’est présentée lors de l’exécution. C’est-à-dire que la logique est correcte (techniquement pas par les entresockets). On peut donc dire que comstackTime est un niveau primaire alors que runtime est un niveau secondaire.