Time to live
(生存期間 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/22 09:36 UTC 版)
Time to live (時に TTL と省略される)は、コンピュータとコンピュータネットワーク技術において、1単位のデータ(例えば一つのパケット)が破棄される前に経過する可能性がある時間、もしくは繰り返し数すなわちトランスミッション数の上限(余命)である。
- 1 Time to liveとは
- 2 Time to liveの概要
- 3 外部リンク
生存期間
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/20 07:24 UTC 版)
「変数 (プログラミング)」の記事における「生存期間」の解説
以上のようにスコープは変数に限らず、プログラミング言語などの言語における、名前そのものの可視範囲についての概念である。それに対し、生存期間は変数とその中身(オブジェクト)の対応付け (binding) についての概念である。寿命 (lifetime) とも呼ばれる。言語や規格によって呼称は異なり、C言語およびC++では生存期間 (lifetime) や記憶域期間 (storage duration) 、Common Lispではエクステント (extent) 、C#では有効期間 (lifetime) と呼ばれる。 変数の生存期間とは、プログラムの実行時に、その名前とそれが指すオブジェクトという対応付けが、いつ始まり、(再代入などが無い限り)いつまで保持されるか、ということである。 グローバル変数の生存期間は、プロセスの生成時か最初の代入時に始まり、プログラムかプロセスの終了時まで、というプログラミング言語が多い。 C言語の場合、関数の仮引数や、自動記憶域期間を持つローカル変数(static修飾されていない、またはauto修飾されているローカル変数)の場合、生存期間はその関数呼び出しから抜けるまでである。これは、C言語では関数呼び出しから一旦抜けてしまうと、そこに戻ってくることは無い(setjmp.h(英語版)内のsetjmp/longjmpを使えば不可能ではないが、「深い方」へのジャンプは禁止されている)からである。 クロージャなどの変数キャプチャにより、その変数へのアクセスがその後もあるかもしれない場合は、その関数呼び出しを抜けてもその対応付け(束縛、bindingなどとも)は保持されなければならない。クロージャないしそのようなものがある言語では、そのためにローカル変数でもエクステントは(アクセスされる可能性がある限り)延長される。そのようなエクステントをinfiniteあるいはindefiniteのエクステント(訳して、無限の、あるいは、無制限の存在期間、など)という。 なお、C言語の関数におけるローカル変数をstatic修飾すると、グローバル変数と同様の生存期間(静的記憶域期間)になる。一方、C言語のグローバル変数をstatic修飾すると、変数のスコープをファイルスコープに制限する。これは単にstaticという同一のキーワードを、文脈から区別が可能だから流用しているというだけで、それぞれの意味は全く違う(@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}後者はfilescopeといったような別の表現にするのが本来は適切だっただろう[独自研究?])。この流用が、おそらくスコープとエクステントを多くのプログラマが混同する原因の一つである[独自研究?]。
※この「生存期間」の解説は、「変数 (プログラミング)」の解説の一部です。
「生存期間」を含む「変数 (プログラミング)」の記事については、「変数 (プログラミング)」の概要を参照ください。
「生存期間」の例文・使い方・用例・文例
生存期間と同じ種類の言葉
- 生存期間のページへのリンク