参照とハイパーリンク

本編の https://m-hiyama.hatenablog.com/entry/20100416/1271386224 で、reference<WebSite>型とかを出したけど、第二型引数を認める

  • reference<T, A> : 参照先の型はT、トリガーオブジェクト〈アンカー〉の型はAである参照型

すると:

  • reference<integer, address> はメモリーオブジェクトを指すアドレスポインター型
  • reference<File, string(format="filePath")> はディスク内のファイルブジェクトを指す名前参照。

reference<T, A> は:

  • 参照を解決する前は A 型である。
  • 参照を解決した後は T 型である。
  • A型のデータの出現位置が、T型のデータで置き換わる。
  • A型のデータが持っていた情報は、関係プロパティとして使われるかもしれない。
  • T型のデータは、A型のトリガーの範囲に“出現する”と考えられる。

オブジェクトも、

  • メモリーオブジェクト
  • ストレージオブジェクト(ローカル)
  • リモートオブジェクト

に分けることができる。

メソッドとデータオブジェクトは離れていてもよい。離れているときは、データの転送またはメソッドの転送が必要になる。RPCは、データを転送してリモートメソッドを起動する。リモートデータをフェッチしてローカルメソッドで処理して返すときもあるだろう。