自己参照について詳しく解説

導入

自己参照は、システムにとって、それ自体を参照する特性です。レベルとメタレベルという 2 つの論理レベルが存在する場合、参照が可能になります。この状況は数学、哲学、プログラミング、さらには言語学でも頻繁に発生します。

単語 (または文) が世界オブジェクト(または状況)、たとえば百科事典を参照する場合、異性愛参照が存在します。記号がそれ自体を指すとき、自己言及が存在します。したがって、「この文には 5 つの単語があります」という文は自己言及的です。自己言及文は逆説的になる可能性があります。したがって、「この文は嘘である」(エピメニデスのパラドックス)は真か偽かを分類することはできません。エピメニデス型のパラドックスは、自己言及の否定と考えることができます。例は、 Trésor des Paradoxes (Éd. Belin) から抜粋しました。「 N’est pas en français est en français」。 「ここに印刷されたものはここには印刷されません」; 「私の熊手は決して舌を使いません」(自己言及の否定を持つ配偶者)。 「私の話し方が間違ったことは一度もありません」。 「この文は自己言及的ではありません」。 「この文が中国語に翻訳されたら、まったく異なる意味になるでしょう」(ダグラス・ホフスタッター)

もう一つの自己言及状況はオートポイエーシスの状況です。なぜなら、論理的組織化は、それを論理的に実現し再生成する物理的構造を生み出すからです。

自己参照について詳しく解説

哲学において

意識、存在、現実、アイデンティティ、存在など、いくつかの概念は強い自己言及的な性格を持っています。彼らは自分自身を指します。私たちは存在論的な鏡について話します。

仏教では

公案や逆説の研究は、禅宗洞の教えの基礎の 1 つを構成します。多くの公案は自己言及に基づいています。

「すべてのものは無常である。 »

「無常は永久なのか、それとも無常なのか?」 »

特定の公案には、数学における論理的パラドックスと同じ構造が見られます。上の例では、無常が永続的である場合、永続的な何か(無常自体)が存在し、すべてが無常であるわけではないことは明らかです。そして、もし無常が無常であるならば、それはそれが永遠を支配する終わりがあることを意味します。

IT分野

自己参照について詳しく解説

プログラミング

コンピューター プログラミングでは、ポインターによって変数を参照できます。たとえば、パスカル言語では、変数 V への参照は @V と書かれます。したがって、ポインタ P を次のように定義すると、次のようになります。

 var P :ポインタ; I :整数;開始P := @I; { P は整数 I を指します } P := @P; {今度は P が自分自身を指します} end

その場合、最終的にはポインタ P がそれ自身を指すことになります。

構造化型を使用すると、より複雑な例を確立できます。例えば ​​:

 type { 使用される変数タイプの定義} PStructure = ^TStructure; {構造体へのポインタの型} TStructure = record {構造体自体の型} a , b , c : integer ; { いくつかの変数、ここでは整数 } SoiMeme : PStructure; { 自己参照に使用するポインタ } end ; var S : T構造; { 構造体変数 } Sを開始しますa := 5 ; {値を定義します} S. b := 6 ; S. c := 8 ; S. SelfMeme := @S; {構造体ポインタに S 自体のアドレスを割り当てます} end

場合によっては、無限リンク リストを作成することに興味があるかもしれません。たとえば、次の型を定義するとします。

タイプPList = ^TList; TList =レコード要素:整数;次 PList;終わり;

いくつかの異なる要素に 1、2、3 を与え、その後 3 に戻ります。これにより、無限シーケンス 1、2、3、3、3… が得られます。

 var 1  2  3 : TList; 1つを始めます項目:= 1 ; A.:= @two;二。要素:= 2 ;二。:= @three;三つ。要素:= 3 ;三つ。:= @three; { 自己参照 } WriteList ( one ) ;終わり

次のWriteListプロシージャを使用します。

プロシージャWriteList (リスト: TList ) ;書き込みを開始します(リスト.要素) ; { リストの終わりかどうかをテストします: 問題のケースでは起こりません } if ( list.next = nil ) then writeln ( '. Finished.' ) else begin write ( ', ' ) ; WriteList ( list.next ^ ) ; { dereference: 確かに、'next' は TList ではなくポインタですが、'next^' はリスト変数に対応します。 } end ;終わり;

WriteListは再帰的プロシージャ、つまり自己参照です。

自己参照について詳しく解説
  1. المرجع الذاتي – arabe
  2. Autoreferència – catalan
  3. ئاماژە بە خۆ – sorani
  4. Autoreference – tchèque
  5. Selbstreferenzialität – allemand
  6. Self-reference – anglais

自己参照について詳しく解説・関連動画

サイエンス・ハブ

知識の扉を開け、世界を変える。