「循環参照」の版間の差分
imported>Administrator |
imported>Fallout New Tokyo 編集の要約なし |
||
| (他の1人の利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
'''循環参照'''([[英語]]:circular reference)とは、ある複数の[[データ]]([[データ構造]])が相互に[[参照]]しあっている状態のことである。 | |||
2つの[[データ]] | == 概要 == | ||
2つの[[データ]]が相互に参照する[[相互参照]]のみならず、何個ものデータが巡り巡って循環しているということも多々ある。 | |||
また、1つの[[データ構造]]が同一のデータ構造を参照する[[自己参照]]も循環参照のひとつである。 | |||
[[プログラミング]]を行う際に循環参照を適切に処理できなければ、たとえば[[シリアライズ]]を行うさいに[[永久ループ]]に陥り、[[アウトオブメモリー]](メモリ不足)や[[スタックマシン]]であれば[[スタックオーバーフロー]]が発生したりといったことになる。 | |||
[[プログラミング]] | |||
また[[参照カウンター]]方式の[[ガベージコレクター]]を採用する[[プログラミング言語]]や[[実行環境]]では、循環参照により[[参照]]しあう[[オブジェクト]]は半永久的に参照カウントが減らないという問題に遭遇し、[[UNIX]]の[[デーモン]]や[[Windowsサービス]]、[[常駐プログラム]]のような長時間起動し続ける[[プログラム]]においてメモリー不足や[[スタックオーバーフロー]]が発生する。 | また[[参照カウンター]]方式の[[ガベージコレクター]]を採用する[[プログラミング言語]]や[[実行環境]]では、循環参照により[[参照]]しあう[[オブジェクト]]は半永久的に参照カウントが減らないという問題に遭遇し、[[UNIX]]の[[デーモン]]や[[Windowsサービス]]、[[常駐プログラム]]のような長時間起動し続ける[[プログラム]]においてメモリー不足や[[スタックオーバーフロー]]が発生する。 | ||
| 15行目: | 14行目: | ||
{|class="wikitable" | {|class="wikitable" | ||
|+ | |+ | ||
! | ! | ||
! A | |||
! B | |||
|- | |- | ||
! 1 | ! 1 | ||
| =A1 | |||
| =B2 | |||
|- | |- | ||
! 2 | ! 2 | ||
| | |||
| =B1 | |||
|} | |} | ||
| 35行目: | 40行目: | ||
== 参考文献 == | == 参考文献 == | ||
{{reflist}} | |||
{{stub}} | {{stub}} | ||