「循環定義」の版間の差分

削除された内容 追加された内容
MomijiRoBot (会話 | 投稿記録)
m Bot: </br> → <br /> ∵Tag with incorrect/obsolete syntax: Check Wikipedia #2
2行目:
 
== 概説 ==
端的に言えば、ある事柄の定義文に、その事柄自体の名称を用いた場合が循環定義である。例えば、"[[カシ]]"の定義文として、「[[どんぐり]]をつける[[木]]」としたとき、どんぐりの定義文を「カシの作る[[種実類]]」とする。定義文を相互に代入するとカシの定義文が「[[カシ]]の作る種実類をつける木」、どんぐりの定義文が「[[どんぐり]]をつける木の作る種実類」となり循環定義となる。このように、定義が循環すると'''定義文のみの知識では事柄の相対的な位置付けは理解できるが、定義する事柄自体の絶対的な理解が出来ない'''ため、定義は成立しない。</br />
循環の輪が大きい場合には、循環定義を発見することが難しくなるが、循環に関係する事柄の数が多くなるため実際の理解においては既知の事柄を経由する可能性が大きくなり問題とならない場合も多い。
そもそも、語彙が有限であり、全ての語彙を定義するためには既に定義されている語彙を用いるか、一切定義されていない語彙を用いる必要が有るため、循環定義を完全に無くすことは不可能である([[ミュンヒハウゼンのトリレンマ]])。
20行目:
辞典にも循環定義が存在する可能性があるが、存在したとしても循環の輪が非常に大きいため発見と修正は難しいと予測される。
 
[[UNIX]]系[[オペレーティングシステム|OS]]のソフトウェアの[[インストール]]に用いる[[パッケージ管理システム]]においても循環定義が起こりうる。</br />
[[ソースコード]]を利用するパッケージ管理システムにおいては、あるソースコードパッケージが他のソースコードパッケージの機能に依存する場合があり、この依存関係が循環を形成した場合に発生する。</br />
この場合、依存先をどこまで辿っても必要な機能の実装が見つからないため、システムに設定された打ち切り回数まで依存関係に沿ってインストール開始を延々と繰り返す状態に陥ることになる。
インストール中に依存関係の循環を発生させる機能を無効にする(循環そのものを切断する)か、バイナリパッケージをインストールすることで循環に対し実装を与える(事前に定義する事柄について理解することと同義)事でインストールを進行させることが可能である。