it-swarm.com.de

Was ist "Laufzeit"?

Ich habe von Dingen wie "C Runtime", "Visual C++ 2008 Runtime", ".NET Common Language Runtime" usw. gehört.

  • Was ist " Laufzeit " genau?
  • Aus was ist es gemacht?
  • Wie interagiert es mit meinem Code? Oder genauer gesagt, wie wird mein Code dadurch gesteuert?

Bei der Codierung der Assemblersprache unter Linux könnte ich die INT-Anweisung verwenden, um den Systemaufruf auszuführen. Ist die Laufzeit also nichts anderes als eine Reihe vorgefertigter Funktionen, die die Low-Level-Funktion in abstraktere und High-Level-Funktionen umschließen? Aber scheint das nicht eher die Definition für die Bibliothek zu sein, nicht für die Laufzeit?

Sind "Laufzeit" und " Laufzeitbibliothek " zwei verschiedene Dinge?

ADD 1

Heutzutage denke ich, dass Runtime etwas mit der sogenannten Virtual Machine gemeinsam hat, wie z. B. JVM. Hier ist das Zitat, das zu einem solchen Gedanken führt:

Dieser Kompilierungsprozess ist so komplex, dass er in mehrere Abstraktionsebenen unterteilt werden kann. Dabei handelt es sich normalerweise um drei Übersetzer: einen Compiler, eine Implementierung einer virtuellen Maschine und einen Assembler. --- Die Elemente von Computersystemen (Einführung, Der Weg ins Hardwareland)

HINZUFÜGEN 2

Das Buch Expert C Programming: Deep C Secrets . Kapitel 6 Laufzeitdatenstrukturen ist ein nützlicher Verweis auf diese Frage.

330
smwikipedia

Runtime beschreibt Software/Anweisungen, die ausgeführt werden während Ihr Programm ausgeführt wird, insbesondere diejenigen Anweisungen, die Sie nicht explizit geschrieben haben, aber für die ordnungsgemäße Ausführung Ihres Codes erforderlich sind.

Low-Level-Sprachen wie C haben eine sehr kleine (wenn überhaupt) Laufzeit. Komplexere Sprachen wie Objective-C, die eine dynamische Nachrichtenübermittlung ermöglichen, haben eine viel umfangreichere Laufzeit.

Sie haben Recht, dass Laufzeitcode Bibliothekscode ist, aber Bibliothekscode ist ein allgemeinerer Begriff, der den von any library erzeugten Code beschreibt. Laufzeitcode ist speziell der Code, der zum Implementieren der Funktionen der Sprache selbst erforderlich ist.

204
e.James

Laufzeit ist ein allgemeiner Begriff, der sich auf alle Bibliotheken, Frameworks oder Plattformen bezieht, auf denen Ihr Code ausgeführt wird.

Die C- und C++ - Laufzeiten sind Auflistungen von Funktionen.

Die .NET-Laufzeit enthält einen Zwischensprache -Interpreter, einen Garbage Collector und mehr.

92
SLaks

Laut Wikipedia: Laufzeitbibliothek / Laufzeitsystem .

In der Computerprogrammierung ist eine Laufzeitbibliothek eine spezielle Programmbibliothek, die von einem Compiler verwendet wird, um Funktionen, die in eine Programmiersprache eingebaut sind, während der Laufzeit (Ausführung) eines Computerprogramms zu implementieren. Dies beinhaltet häufig Funktionen zur Ein- und Ausgabe oder zur Speicherverwaltung.


Ein Laufzeitsystem (auch Laufzeitsystem oder nur Laufzeitsystem genannt) ist eine Software, die die Ausführung von Computerprogrammen unterstützt, die in einer bestimmten Computersprache geschrieben sind. Das Laufzeitsystem enthält Implementierungen grundlegender Befehle auf niedriger Ebene und kann auch Befehle auf höherer Ebene implementieren und die Typüberprüfung, das Debuggen und sogar die Codegenerierung und -optimierung unterstützen. Auf einige Dienste des Laufzeitsystems kann der Programmierer über eine Anwendungsprogrammierschnittstelle zugreifen, auf andere Dienste (z. B. Aufgabenplanung und Ressourcenverwaltung) kann jedoch möglicherweise nicht zugegriffen werden.


Betreff: Ihre Bearbeitung , "Laufzeit" und "Laufzeitbibliothek" sind zwei verschiedene Namen für dieselbe Sache.

70
Matt Ball

Die Laufzeitumgebung oder Ausführungsumgebung ist der Teil einer Sprachimplementierung, der ausgeführt wird Code und ist zur Laufzeit vorhanden ; Der Teil der Implementierung zur Kompilierungszeit wird als Übersetzungsumgebung bezeichnet der C-Standard.

Beispiele:

  • die Java Runtime besteht aus der virtuellen Maschine und der Standardbibliothek

  • eine allgemeine C-Laufzeit besteht aus dem Loader (der Teil des Betriebssystems ist) und der Laufzeitbibliothek, die die Teile der C-Sprache implementiert, die nicht in die ausführbare Datei des Compilers integriert sind. In gehosteten Umgebungen umfasst dies die meisten Teile der Standardbibliothek

50
Christoph

Nach meinem Verständnis ist Laufzeit genau das, was es bedeutet - die Zeit, zu der das Programm ausgeführt wird. Sie können sagen, dass etwas zur Laufzeit/Laufzeit oder zur Kompilierungszeit passiert.

Ich denke Laufzeit und Laufzeitbibliothek sollten (wenn nicht) zwei getrennte Dinge sein. "C-Laufzeit" scheint mir nicht richtig zu sein. Ich nenne es "C-Laufzeitbibliothek".

Antworten auf Ihre anderen Fragen: Ich denke, der Begriff Laufzeit kann erweitert werden, um auch die Umgebung und den Kontext des Programms zu berücksichtigen, wenn es ausgeführt wird.

  • es besteht aus allem, was während der Laufzeit des Programms als "Umgebung" bezeichnet werden kann, z. B. anderen Prozessen, dem Status des Betriebssystems und den verwendeten Bibliotheken, dem Status anderer Prozesse usw
  • es interagiert nicht generell mit Ihrem Code, sondern definiert nur, unter welchen Umständen Ihr Code funktioniert und was ihm während der Ausführung zur Verfügung steht.

Diese Antwort ist bis zu einem gewissen Grad nur meine Meinung, keine Tatsache oder Definition.

29
Michał Trybus

Matt Ball antwortete richtig. Ich würde es mit Beispielen sagen.

Erwägen Sie, ein in Turbo-Borland C/C++ (Version 3.1 aus dem Jahr 1991) kompiliertes Programm auszuführen, und lassen Sie es unter einer 32-Bit-Version von Windows wie Win 98/2000 usw. laufen.

Es ist ein 16-Bit-Compiler. Und Sie werden sehen, dass alle Ihre Programme 16-Bit-Zeiger haben. Warum ist es so, wenn Ihr Betriebssystem 32-Bit ist? Weil Ihr Compiler die Ausführungsumgebung von 16 Bit eingerichtet hat und die 32-Bit-Version des Betriebssystems dies unterstützt.

Was allgemein als JRE (Java Runtime Environment) bezeichnet wird, stellt einem Java) - Programm alle Ressourcen zur Verfügung, die zur Ausführung erforderlich sind.

Tatsächlich ist die Laufzeitumgebung ein Hirnprodukt der Idee von virtuellen Maschinen. Eine virtuelle Maschine implementiert die raw Schnittstelle zwischen Hardware und dem, was ein Programm möglicherweise ausführen muss. Die Laufzeitumgebung übernimmt diese Schnittstellen und stellt sie dem Programmierer zur Verfügung. Ein Compiler-Entwickler würde diese Einrichtungen benötigen, um eine Ausführungsumgebung für seine Programme bereitzustellen.

26
ultimate cause

Führen Sie die Zeit genau dort aus, wo Ihr Code zum Leben erweckt wird, und Sie können eine Menge wichtiger Dinge sehen, die Ihr Code tut.

Runtime ist dafür verantwortlich, Speicher zuzuweisen, Speicher freizugeben und das Betriebssystem-Subsystem wie (File Services, IO Services .. Network Services usw.) zu verwenden.

Ihr Code wird "WORKING IN THEORY" genannt, bis Sie Ihren Code praktisch ausführen. und Runtime ist ein Freund, der dabei hilft, dies zu erreichen.

6
TalentTuner

Ich habe festgestellt, dass das folgende Ordnerstruktur einen sehr aufschlussreichen Kontext für das Verständnis von runtime darstellt:

Runtimes of Mozilla XulRunner

Sie können sehen, dass es die Quelle '' gibt, es gibt die Quelle ' [~ # ~] sdk [~ # ~] 'oder' Software Development Kit 'und dann gibt es den Runtime, zB. das Zeug, das ausgeführt wird - zur Laufzeit. Der Inhalt ist wie folgt:

runtimes' folder contents

Die win32-Zip-Datei enthält .exe -s und .dll -s.

Also zB. Bei der C-Laufzeit handelt es sich um die folgenden Dateien - C-Laufzeitbibliotheken, .so-s oder .dll-s -, die Sie zur Laufzeit ausführen, die durch die Einbeziehung (oder den Inhalt oder Zweck) in die Definition von C-Sprache (auf 'Papier'), die dann von der C-Implementierung Ihrer Wahl implementiert wird. Und dann erhalten Sie die Laufzeit dieser Implementierung, um sie zu verwenden und darauf aufzubauen.

Das sind mit ein wenig Polarisierung die ausführbaren Dateien, die die Benutzer Ihres neuen C-basierten Programms benötigen. Als Entwickler eines C-basierten Programms benötigen Sie jedoch auch den C-Compiler und die C-Bibliotheks-Header. Die Benutzer brauchen diese nicht.

3
n611x007

eine Laufzeit kann die aktuelle Phase der Programmlebensdauer (Laufzeit/Kompilierzeit/Ladezeit/Verknüpfungszeit) oder eine Laufzeitbibliothek darstellen, die die grundlegenden Aktionen auf niedriger Ebene darstellt, die mit der Ausführungsumgebung verbunden sind. oder es könnte ein Laufzeitsystem bedeuten, das mit einer Ausführungsumgebung identisch ist.

bei C-Programmen ist die Laufzeit der Code, der den Stack, den Heap usw. einrichtet, was von der C-Umgebung erwartet wird. es schafft im Wesentlichen das Umfeld, das die Sprache verspricht. (Es könnte eine Laufzeitbibliothekskomponente, crt0.lib oder so etwas in Fall von C haben)

3
alvin

Laufzeit bedeutet im Grunde, wenn das Programm mit der Hardware und dem Betriebssystem einer Maschine interagiert. C hat keine eigene Laufzeit, sondern fordert die Laufzeit von einem Betriebssystem (das im Grunde ein Teil von RAM ist) an, sich selbst auszuführen.

2
Shrey Mittal