static, dynamic: 静的な,動的な
上智大学 伊藤 潔
2007年4月2日
static 「静的な」は,実行や処理の前にある動作を既に行っていることを意味し,dynamic
「動的な」は,必要に応じて処理中にある動作を行うことを意味します.
dynamic allocation 「動的割り付け」というのは,プログラムの実行時に必要に応じて,主記憶上に変数領域やデータ領域を割り付けることをいいます.このようにすると,可能性のある領域を実行前に全て用意する必要がなく,主記憶の無駄な使用が削減されます.全て用意しておくことは,static allocation
「静的割り付け」といいます.割り付けられる変数を,それぞれ,dynamic variable
「動的変数」,static variable 「静的変数」といいます.dynamic allocation
「動的割り付け」は,実行時に領域の確保・割り付けを行うので,その処理に要する時間がかかります.
オブジェクトモジュールの静的リンキングと動的リンキングについて述べます.
従来,source program module 「ソースプログラムモジュール」がcompile 「コンパイル」されて,object program
module 「オブジェクトプログラムモジュール」が出力されます.その後,linkage editor 「リンケ−ジエディタ」によって結合されるものは,必要なオブジェクトプログラムモジュ−ル
が結合され,load program module 「ロ−ドプログラムモジュ−ル」が出力されます.
このロ−ドプログラムモジュ−ルは,その実行時に様々な入力デ−タを受け取って,様々な判断と分岐を行って処理を行います.入力デ−タやその処理によっては使用されないオブジェクトプログラムモジュ−ルも,
リンケ−ジエディタで結合されています.このロ−ドプログラムモジュ−ルは,ソースプログラムのレベルで考えられる全ての場合に対処できるように,必要な全てのオブジェクトプログラムモジュ−ルを結合したもので
す.このため,その記憶領域は大きくなり.このような形態の結合方式を,static linking 「静的リンキング
,静的結合」とよびます.
以上の静的リンキングに対して,dynamic linking 「動的リンキング,動的結合」があり,プログラムの実行時に必要に応じてオブジェクトプログラムモジュ−ル
の領域を主記憶上に割り付けて結合するため,記憶容量が少なくて済みます.もちろん,その処理に要する時間がかかります.
Windowsの内容識別子.dllは,dynamic link library の略であり,必要に応じて主記憶上に呼び出されて実行される
モジュールです.まさに,dynamic linkingです.
変数やモジュールの動的な結合のことを,dynamic bindingとよぶこともあります.
dynamic analysis 「動的な分析」は,モデルの構造のみではなく,モデルの動的な振る舞いを分析すること
を意味します. dynamic model 「動的モデル」は, 構成要素の関係だけで表したモデルではなく,
動的な振る舞いも記述したモデルです.
static RAMとdynamic RAMは,後者が,一定時間間隔で記憶内容の再書き込み(refresh)を行う必要がある記憶素子で,dynamicという名称が使われています.
static | 静的な | ||
dynamic | 動的な | ||
dynamic allocation | 動的割り付け | ||
static allocation | 静的割り付け | ||
dynamic variable | 動的変数 | ||
static variable | 静的変数 | ||
static linking | 静的リンキング,静的結合 | ||
dynamic linking | 動的リンキング,動的結合 | ||
.dll,dynamic link library | |||
dynamic binding | 動的結合,動的束縛 | ||
dynamic analysis | 動的分析 | ||
dynamic model | 動的モデル | ||
static RAM | |||
dynamic RAM | |||
source program module | ソースプログラムモジュール | ||
object program module | オブジェクトプログラムモジュール | ||
load program module | ロ−ドプログラムモジュ−ル | ||
compile | コンパイル | ||
linkage editor | リンケ−ジエディタ | ||