「C ランタイム」、「Visual C++ 2008 ランタイム」、「.NET 共通言語ランタイム」などについて聞いたことがあります。
- 「ランタイム」とは正確には何でしょうか?
- それは何からできていますか?
- それは私のコードとどのように相互作用するのでしょうか? あるいは、もっと正確に言えば、私のコードはそれによってどのように制御されるのでしょうか?
Linux でアセンブリ言語をコーディングする場合、INT 命令を使用してシステム コールを行うことができます。つまり、ランタイムは、低レベルの関数をより抽象的で高レベルの関数にラップする、事前に作成された一連の関数にすぎないのでしょうか。しかし、これはランタイムではなく、ライブラリの定義のように思えますか。
「ランタイム」と「ランタイムライブラリ「2つの異なるもの?」
1を追加
最近、私はランタイムはJVM などのいわゆる仮想マシンと共通点があるのではないかと考えています。このような考えに至った引用文を以下に示します。
このコンパイル プロセスは、複数の抽象化レイヤーに分割できるほど複雑であり、通常、コンパイラ、仮想マシン実装、アセンブラという 3 つのトランスレータが関与します。 ---コンピューティングシステムの要素(序文、ハードウェアランドへの道)
追加2
本エキスパート C プログラミング: 奥深い C の秘密この質問に対する参考資料として、「第 6 章 ランタイム データ構造」が役立ちます。
追加 3 - 2021 年 2 月 28 日午前 7:31
プロセッサ設計についてある程度の知識を得た後の私の見解を述べます。コンピュータ全体は、単に複数のレベルの抽象化です。基本的なトランジスタから実行中のプログラムまで続きます。どのlevel N
抽象化でも、そのランタイムはその下の抽象化の直接的なものですlevel N-1
。そして、レベル 0 の抽象化を与えてくれるのは神です。
ベストアンサー1
ランタイムは、プログラムの実行中に実行されるソフトウェア/命令、特に明示的に記述されていないが、コードを適切に実行するために必要な命令を表します。
C のような低レベル言語では、実行時間は非常に短いです (実行時間がない場合もある)。動的なメッセージ パッシングを可能にする Objective-C のようなより複雑な言語では、実行時間は非常に長くなります。
ランタイム コードはライブラリ コードであることは正しいですが、ライブラリ コードはより一般的な用語であり、任意のライブラリによって生成されるコードを表します。ランタイム コードは、具体的には、言語自体の機能を実装するために必要なコードです。