目次:
定義-サンクはどういう意味ですか?
サンクは、一般的なコンピューティングコンテキストで、低レベルのマシン生成コードの一部であり、ソフトウェアシステムの詳細を実装します。 次のいずれかです。
- 遅延計算を実行するコード
- 仮想関数テーブル実装の機能
- 互換性の問題のための、システム固有のフォームから別のフォームへのマシンデータのマッピング
Techopediaはサンクについて説明します
サンクの概念は1961年初頭に登場しました。これは、実行時に引数の値を返す計算です。 必要に応じた呼び出しは、最初の実行後にサンクを戻り値に置き換えます。 遅延バインディングを使用する言語では、サンクによって実行される計算に基づいて、実行時にルックアップが行われます。
関数型プログラミングにおけるヌル関数(引数をとらない関数)は、サンクと呼ばれます。 サンクは遅延評価をシミュレートし、関数の引数の計算を遅らせます。 これらの関数はさらに、サンクに実際の値を取得させる。 サンクは、高次プログラミングの定数関数の実装でも自然に現れる場合があります。
C ++などのオブジェクト指向言語のコンパイラは、サンクと呼ばれる関数を生成します。 仮想または多重継承が存在する場合の仮想関数呼び出しを最適化します。
再配置可能コードの一部のインスタンスは、ローカルサンクを使用してライブラリ関数を呼び出します。 コード内の動的ライブラリ呼び出しは、ジャンプテーブル内のサンクにジャンプします。これは、該当するライブラリをロードする関数によってさらに置き換えられるか、既にロードされたライブラリ内の適切なポイントに移動します。 したがって、この領域のサンクは、以前に計算されキャッシュされた値を計算または返します。 サンクは、仮想アドレスから物理アドレスへのマッピングを実行するために、ソフトウェアベースの仮想メモリシステムで使用されます。 32ビットOS内で16ビット仮想DOSマシンを作成することはサンクと呼ばれ、古いシステムコールを使用するアプリケーションとの下位互換性を保証します。
フラットサンクは、32ビットコードから16ビットコードに呼び出しを変換するサンクを使用します。 中間コードは、プラットフォーム間でメモリアドレスを変換します。 Microsoftには、Win32と呼ばれるサンク層があり、32ビットWindowsアプリケーションを16ビットWindowsで実行できます。 64ビットWindowsバージョンは、サンクレイヤーWoW64も提供します。これにより、32ビットWindowsアプリケーションの使用が許可されます。
