1. ホーム
  2. terminology

[解決済み] ランタイム」とは何ですか?

2022-03-05 22:43:01

質問

Cランタイム、Visual C++ 2008ランタイム、.NET共通言語ランタイムなどという言葉を聞いたことがありますが、どのようなものですか?

  • "とは? ランタイム 具体的には?
  • 材質は何ですか?
  • 私のコードとどのように相互作用するのか?もっと正確に言うと、私のコードはどのように制御されているのでしょうか?

Linuxでアセンブリ言語をコーディングするとき、INT命令でシステムコールを行うことができました。では、ランタイムは、低レベルの関数をより抽象的で高レベルの関数にラップするプレハブ関数の束に過ぎないのだろうか?しかし、これはむしろランタイムのためではなく、ライブラリのための定義のように思われないか?

は、"runtime"と" ランタイムライブラリ "は、2つの異なるものですか?

追加1

最近、もしかしたらと思うことがあります。 ランタイム は、いわゆる 仮想マシン JVMのような。そんなことを考えるきっかけとなったのが、こんな引用です。

<ブロッククオート

このコンパイルプロセスは十分に複雑であるため、次のように分割することができます。 これらの抽象化された層には、通常、3つの コンパイラ、仮想マシン実装、トランスレータです。 アセンブラ --- 計算機システムの構成要素 (はじめに ハードウェアの国への道)

ADD 2

エキスパートCプログラミング C言語ディープシークレット . 第6章ランタイムデータ構造は、この質問に対する有効な参考資料です。

追加 3 - 2021年2月28日午前7時31分

プロセッサの設計について、ある程度の知識を得た上での私の見解を述べます。コンピュータというものは、複数のレベルの 抽象化 . 初歩的なトランジスタから、実行中のプログラムに至るまで。どんな level N 抽象度の高い ランタイム は、すぐに level N-1 その下にある抽象的なもの。そして、抽象度のレベル0を与えてくれるのが神なのです。

どのように解決するのか?

ランタイムは、実行されるソフトウェア/命令を記述します。 と同時に 特に、明示的に記述したわけではないが、コードの適切な実行に必要な命令などです。

C言語のような低レベルの言語は、ランタイムが非常に小さい(あったとしても)。Objective-Cのように動的なメッセージパッシングが可能な複雑な言語では、ランタイムはより広範囲に及びます。

ランタイムコードがライブラリコードであることは正しいのですが、ライブラリコードというのはより一般的な用語で 任意の ライブラリです。ランタイムコードは、特に言語そのものの機能を実装するために必要なコードです。