O que é"runtime"?

já ouvi falar de coisas como" C Runtime"," Visual C++ 2008 Runtime",". net Common Language Runtime", etc.

  • o que é "o tempo de execução {[[6]}" exactamente?
  • De que é feito? Como interage com o meu código? Ou talvez mais precisamente, como é que o meu código é controlado por ele?

ao codificar a linguagem assembly no Linux, eu poderia usar a instrução INT para fazer a chamada do sistema. Então, o tempo de execução é apenas um monte de funções pré-fabricadas que envolver a função de baixo nível em funções mais abstractas e de alto nível? Mas isto não parece mais a definição para a biblioteca, não para o tempo de execução?

são "runtime" e " runtime library " duas coisas diferentes?

adicionar 1

hoje em dia, estou a pensar que talvez O tempo de execução tenha algo em comum com a chamada máquina Virtual , como o JVM. Aqui está a citação que leva a tal pensamento:

Esta compilação processo é suficientemente complexo para ser dividido em várias camadas de abstração, e estas geralmente envolvem três tradutores: um compilador, uma implementação de máquina virtual, e um montador. --- OS Elementos dos sistemas informáticos (introdução, The Road Down To Hardware Land)

adicionar 2

o livroProgramação C Expert: segredos C profundos . Chapter 6 Runtime Data Structures is an useful reference to this question.

 263
Author: smwikipedia, 2010-10-10

14 answers

O tempo de execução descreve o software / instruções que são executadas enquanto o seu programa está em execução, especialmente as instruções que não escreveu explicitamente, mas que são necessárias para a execução correcta do seu código.

Línguas de baixo nível como C têm muito pouco tempo de execução (se houver). Linguagens mais complexas como Objective-C, que permite a transmissão dinâmica de mensagens, têm um tempo de execução muito mais extenso.

Está correcto que o código de execução é código de biblioteca, mas biblioteca o código é um termo mais geral, descrevendo o código produzido por qualquer biblioteca . O código de tempo de execução é especificamente o código necessário para implementar as características da própria linguagem.

 128
Author: e.James, 2010-10-10 13:58:24

Tempo de execução é um termo geral que se refere a qualquer biblioteca, estrutura ou plataforma onde o seu código é executado.

Os tempos de execução em C E C++ são colecções de funções.

O tempo de execução. Net contém um intérprete intermediário, um coletor de lixo, e muito mais.

 82
Author: SLaks, 2016-12-29 19:32:41

De acordo com o Wikipedia: runtime library/sistema de tempo de execução.

Na programação de computadores, uma biblioteca de tempo de execução é uma biblioteca de programas especial usada por um compilador, para implementar funções construídas em uma linguagem de programação, durante o tempo de execução (execução) de um programa de computador. Isso muitas vezes inclui funções para entrada e saída, ou para gerenciamento de memória.


Um sistema de tempo de execução (também chamado de Sistema de tempo de execução ou apenas de tempo de execução) é um software projetado para suportar a execução de programas de computador escritos em alguma linguagem de computador. O sistema run-time contém implementações de comandos básicos de baixo nível e também pode implementar comandos de alto nível e pode suportar verificação de tipo, depuração, e até mesmo geração de código e otimização. Alguns serviços do sistema run-time são acessíveis ao programador através de uma interface de programação de aplicação, mas outros serviços (tais como programação de tarefas e gestão de recursos) podem ser inacessivel.


Re: sua edição, "runtime" e "runtime library" são dois nomes diferentes para a mesma coisa.

 66
Author: Matt Ball, 2010-10-10 13:55:45

A tempo de execução ou ambiente de execução é a parte de uma implementação da linguagem que executa o código e está presente em tempo de execução; do em tempo de compilação parte da implementação é chamado o ambiente de tradução em C padrão.

Exemplos:

  • O tempo de execução Java consiste na máquina virtual e na Biblioteca Padrão

  • Um runtime C comum consiste no carregador (que é parte do sistema operacional) e a biblioteca de tempo de execução, que implementa as partes da linguagem C que não são embutido no executável pelo compilador; em ambientes hospedados, isto inclui a maioria das peças da biblioteca padrão

 45
Author: Christoph, 2010-10-10 15:00:56

Na minha opiniãoo tempo de execução {[[3]} é exactamente o que significa - o tempo em que o programa é executado. Podes dizer que algo acontece à hora de execução. / tempo de execução ou na hora de compilação.

Acho queruntime eruntime library devem ser (se não forem) duas coisas separadas. "C runtime" não me parece certo. Chamo-lhe "biblioteca C runtime".

Respostas às suas outras perguntas: Eu acho que o termo runtime pode ser estendido para incluir também o ambiente e o contexto do programa quando ele é executado, então:

  • Ele consiste em tudo o que pode ser chamado de "ambiente" durante o tempo em que o programa é executado, por exemplo, outros processos, estado do sistema operacional e bibliotecas usadas, estado de outros processos, etc
  • ele não interage com o seu código em um sentido geral, ele apenas define em que circunstâncias o seu código funciona, o que está disponível para ele durante a execução.

Esta resposta é para alguns estendem apenas a minha opinião, não um fato ou definição.

 27
Author: Michał Trybus, 2010-10-10 14:05:17
O Matt Ball respondeu correctamente. Gostaria de referir alguns exemplos.

Considere executar um programa compilado em compilador Turbo-Borland C/C++ (Versão 3.1 do ano de 1991) e deixe-o correr sob uma versão de 32 bits do windows como Win 98/2000, etc.

É um compilador de 16 bits. E você verá que todos os seus programas têm ponteiros de 16 bits. Porque é que é assim quando o teu so tem 32 bits? Porque o seu compilador configurou o ambiente de execução de 16 bits e a versão de 32 bits do OS apoiei-o.

O que é comumente chamado de JRE (Java Runtime Environment) fornece um programa Java com todos os recursos que ele pode precisar para executar.

Na verdade, o ambiente de execução é produto cerebral da ideia de máquinas virtuais. Uma máquina virtual implementa a interface raw entre hardware e o que um programa pode precisar de executar. O ambiente de execução adota essas interfaces e as apresenta para o uso do programador. Um desenvolvedor de compiladores precisaria destes instalações para fornecer um ambiente de execução para seus programas.
 22
Author: ultimate cause, 2018-05-09 05:25:01
Corra o tempo exactamente onde o seu código entra na vida e pode ver muita coisa importante que o seu código faz.

O tempo de execução tem a responsabilidade de distribuir memória , libertar memória , usando o sub-sistema do sistema operacional como (Serviços de Ficheiros, serviços IO.. Serviços de rede, etc.)

O seu código será chamado de "trabalhar em teoria" até executar praticamente o seu código. e o tempo de execução é um amigo que ajuda a achá-lo.
 5
Author: TalentTuner, 2010-10-10 14:02:15

Um tempo de execução pode indicar a fase actual da vida do Programa (tempo de execução / tempo de compilação / tempo de carga / tempo de ligação) ou pode significar uma biblioteca de tempo de execução, que formam as ações básicas de baixo nível que interagem com o ambiente de execução. ou pode significar um sistema de tempo de execução, que é o mesmo que um ambiente de execução.

No caso de programas C, o tempo de execução é o código que configura a pilha, o heap etc. que um requisito esperado pelo ambiente C. essencialmente, cria o ambiente que é prometido pela linguagem. (pode ter um componente de biblioteca em tempo de execução, crt0.lib ou algo parecido no caso de C)

 3
Author: alvin, 2012-04-06 17:29:28

Descobri que a seguinte estrutura de pastas faz um contexto muito perspicaz para compreender o que runtime é:

Runtimes of Mozilla XulRunner

Você pode ver que há o ' Fonte ', há o ' SDK ' ou 'Software Development Kit' e depois há o Runtime, por exemplo. as coisas que correm a tempo de execução. O seu conteúdo é como:

runtimes' folder contents

O zip win32 contém .exe - s and .dll-S.

Então, por exemplo. o tempo de execução de C seriam os arquivos como isto ... bibliotecas em tempo de execução.dll-s -- você executa no tempo de execução, feito especial por sua (ou seu conteúdo' ou propósitos') inclusão na definição da linguagem C (em 'papel'), em seguida, implementado pela sua implementação C de escolha. E então você tem o tempo de execução dessa implementação, para usá-la e para construir sobre ela. Isto é, com um pouco de polarização, os arquivos executáveis que os usuários do seu novo programa baseado em C precisarão. Como desenvolvedor de um programa baseado em C, Você também, mas você precisa do compilador C e dos cabeçalhos da biblioteca C, também; os usuários não precisam deles.
 3
Author: n611x007, 2012-11-16 14:00:26

Tempo de execução significa basicamente quando o programa interage com o hardware e o sistema operacional de uma máquina. C não tem seu próprio tempo de execução, mas em vez disso, ele pede o tempo de execução de um sistema operacional (que é basicamente uma parte da ram) para executar-se.

 2
Author: Shrey Mittal, 2018-04-07 18:16:15

Tempo de execução é a instância onde você não sabe sobre que tipo de objetos cria durante a sua execução, a criação de objetos são baseados em determinada condição ou algum trabalho de computação. Em contradição, o tempo de compilação é a instância onde os objetos necessários são definidos por você antes de suas execuções.

 0
Author: chethan, 2016-07-04 17:31:28

Estas secções da documentação MSDN tratam da maior parte das suas perguntas.: http://msdn.microsoft.com/en-us/library/8bs2ecf4 (VS.71).aspx

Espero que isto ajude. Obrigado., Damian
 -1
Author: Damian Schenkelman, 2010-10-10 13:53:31

O tempo de execução é um pouco oposto ao tempo de concepção e tempo de compilação/tempo de ligação. Historicamente, vem de um ambiente de computador central lento, onde o tempo da máquina era caro.

 -1
Author: , 2010-10-16 01:23:45

Tempo decorrido durante a execução do programa. Mas isto é demasiado geral. Dizer, duração após a compilação do programa, quando o sistema operacional está apresentando a receita para programador para interagir ou ver os resultados do que ele desenvolveu, é chamado de tempo de execução. Não são apresentados erros de sintaxe, etc, durante a execução. Ou seja, a lógica é correcta(tecnicamente não pela perspetiva empresarial). De certa forma, podemos dizer que o tempo de trabalho é um nível primário, enquanto o tempo de execução é um nível secundário.

 -4
Author: Amjad Zahid, 2016-12-21 19:04:26