Ich habe von Dingen wie "C Runtime", "Visual C ++ 2008 Runtime", ".NET Common Language Runtime" usw. gehört.
- Was genau ist " Laufzeit "?
- Aus was ist es gemacht?
- Wie interagiert es mit meinem Code? Oder genauer gesagt, wie wird mein Code dadurch gesteuert?
Beim Codieren der Assemblersprache unter Linux könnte ich die INT-Anweisung verwenden, um den Systemaufruf durchzuführen. Ist die Laufzeit also nichts anderes als eine Reihe vorgefertigter Funktionen, die die Low-Level-Funktion in abstraktere und High-Level-Funktionen umhüllen? Aber scheint dies 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 vielleicht etwas mit der sogenannten virtuellen Maschine gemeinsam hat , wie zum Beispiel JVM. Hier ist das Zitat, das zu solchen Gedanken führt:
Dieser Kompilierungsprozess ist so komplex, dass er in mehrere Abstraktionsebenen unterteilt werden kann. In der Regel sind drei Übersetzer beteiligt: ein Compiler, eine Implementierung einer virtuellen Maschine und ein Assembler. --- Die Elemente von Computersystemen (Einführung, Der Weg zum Hardware-Land)
ADD 2
Das Buch Expert C Programming: Deep C Secrets . Kapitel 6 Laufzeitdatenstrukturen ist eine nützliche Referenz zu dieser Frage.
quelle
runtime library
Plus-Steuercode und einen Status (vom Betriebssystem bereitgestellt).Antworten:
Runtime beschreibt Software / Anweisungen, die ausgeführt werden, während Ihr Programm ausgeführt wird, insbesondere solche Anweisungen, die Sie nicht explizit geschrieben haben, die jedoch 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 jeder Bibliothek erzeugten Code beschreibt . Laufzeitcode ist speziell der Code, der zum Implementieren der Funktionen der Sprache selbst erforderlich ist.
quelle
Runtime ist ein allgemeiner Begriff, der sich auf jede Bibliothek, jedes Framework oder jede Plattform bezieht, auf der Ihr Code ausgeführt wird.
Die C- und C ++ - Laufzeiten sind Sammlungen von Funktionen.
Die .NET-Laufzeit enthält einen Intermediate Language Interpreter, einen Garbage Collector und vieles mehr.
quelle
cout
oderprintf
.Laut Wikipedia: Laufzeitbibliothek / Laufzeitsystem .
Betreff: Ihre Bearbeitung , "Laufzeit" und "Laufzeitbibliothek" sind zwei verschiedene Namen für dieselbe Sache.
quelle
Die Laufzeit- oder Ausführungsumgebung ist der Teil einer Sprachimplementierung, die Code ausführt und zur Laufzeit vorhanden ist . Der Teil der Implementierung zur Kompilierungszeit wird im C-Standard als Übersetzungsumgebung bezeichnet .
Beispiele:
Die Java-Laufzeit besteht aus der virtuellen Maschine und der Standardbibliothek
Eine gemeinsame C-Laufzeit besteht aus dem Loader (der Teil des Betriebssystems ist) und der Laufzeitbibliothek, die die Teile der C-Sprache implementiert, die vom Compiler nicht in die ausführbare Datei integriert sind. In gehosteten Umgebungen umfasst dies die meisten Teile der Standardbibliothek
quelle
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 runtime" 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.
Diese Antwort ist bis zu einem gewissen Grad nur meine Meinung, keine Tatsache oder Definition.
quelle
Matt Ball hat es richtig beantwortet. Ich würde es mit Beispielen sagen.
Erwägen Sie, ein Programm auszuführen, das in Turbo-Borland C / C ++ (Version 3.1 aus dem Jahr 1991) kompiliert wurde, 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 32bit 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, bietet einem Java-Programm alle Ressourcen, die es zur Ausführung benötigt.
Tatsächlich ist die Laufzeitumgebung ein Gehirnprodukt der Idee von virtuellen Maschinen. Eine virtuelle Maschine implementiert die unformatierte 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 Funktionen benötigen, um eine Ausführungsumgebung für seine Programme bereitzustellen.
quelle
Führen Sie die Laufzeit genau dort aus, wo Ihr Code zum Leben erweckt wird, und Sie können viele wichtige Dinge sehen, die Ihr Code tut.
Runtime ist dafür verantwortlich, Speicher zuzuweisen, Speicher freizugeben und das Subsystem des Betriebssystems wie (Dateidienste, E / A-Dienste, Netzwerkdienste usw.) zu verwenden.
Ihr Code heißt "WORKING IN THEORY", bis Sie Ihren Code praktisch ausführen. und Runtime ist ein Freund, der dabei hilft, dies zu erreichen.
quelle
Eine Laufzeit kann die aktuelle Phase der Programmlebensdauer (Laufzeit / Kompilierungszeit / Ladezeit / Verknüpfungszeit) oder eine Laufzeitbibliothek bezeichnen, die die grundlegenden Aktionen auf niedriger Ebene bildet, 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 Stapel, den Heap usw. einrichtet, was von der C-Umgebung erwartet wird. Es schafft im Wesentlichen die Umgebung, die von der Sprache versprochen wird. (Es könnte eine Laufzeitbibliothekskomponente, crt0.lib oder ähnliches im Fall von C haben.)
quelle
Ich fand heraus, dass die folgende Ordnerstruktur einen sehr aufschlussreichen Kontext für das Verständnis dessen darstellt, was
runtime
ist:Sie können sehen, dass es die ' Quelle ' gibt, es gibt das ' SDK ' oder 'Software Development Kit' und dann gibt es die
Runtime
z. das Zeug, das ausgeführt wird - zur Laufzeit. Der Inhalt ist wie folgt:Die Win32-Zip enthält .exe -s und .dll -s.
Also zB. Die C-Laufzeit sind die Dateien wie diese - C-Laufzeitbibliotheken, .so-s oder .dll -s -, die Sie zur Laufzeit ausführen C-Sprache (auf 'Papier'), dann von Ihrer C-Implementierung Ihrer Wahl implementiert. Und dann erhalten Sie die Laufzeit dieser Implementierung, um sie zu verwenden und darauf aufzubauen.
Das heißt, mit ein wenig Polarisierung die ausführbaren Dateien, die die Benutzer Ihres neuen C-basierten Programms benötigen. Als Entwickler eines C-basierten Programms tun Sie das auch, aber Sie benötigen auch den C-Compiler und die C-Bibliotheks-Header. Die Benutzer brauchen diese nicht.
quelle
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.
quelle
Wenn ich beim Lesen der obigen Antworten richtig verstanden habe, handelt es sich bei Runtime im Grunde genommen um Hintergrundprozesse wie Speicherbereinigung, Speicherzuweisung, im Grunde alle Prozesse, die indirekt von den Bibliotheken / Frameworks aufgerufen werden, in denen Ihr Code geschrieben ist, und insbesondere um diese Prozesse, die nach der Kompilierung auftreten, während die Anwendung ausgeführt wird.
quelle
Diese Abschnitte der MSDN-Dokumentation behandeln die meisten Ihrer Fragen: http://msdn.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx
Ich hoffe das hilft.
Danke, Damian
quelle
Die Laufzeit ist der Fall, in dem Sie nicht wissen, welche Art von Objekten während der Ausführung erstellt wird. Die Objekterstellung basiert auf bestimmten Bedingungen oder Berechnungsarbeiten. Im Gegensatz dazu ist die Kompilierungszeit die Instanz, in der erforderliche Objekte von Ihnen vor ihrer Ausführung definiert werden.
quelle
Die Laufzeit ist etwas entgegengesetzt zur Entwurfszeit und Kompilierungszeit / Verknüpfungszeit. Historisch gesehen stammt es aus einer langsamen Mainframe-Umgebung, in der die Maschinenzeit teuer war.
quelle