Skip to content

Node Type とTerm Type

hikalium edited this page Feb 13, 2017 · 6 revisions

Node Type

保存データ(つまりグラフ構造)のノードにおけるデータの区別。 以下の4つしか定義しない。

  • kNone
  • kRelation
  • kBLOB
  • kString
  • kInteger

TermType

ノードがどんな意味のデータを持っているのかという区別。TermTypeそれ自体が一つのノード。これに対して

(何かのノード) -- NODEID_TERM_TYPE --> (TermTypeを説明する文字列が入ったノード)

とすれば、(何かのノード)のTermTypeを指定できる。

  • Array
  • Variable 変数ってなんだ? 値を入れておけるもの nvにおける値ってなんだ? ノードに入っているデータのこと nvではノードの値は作成時に決定しそれ以降は変わらないということにすればいい 何が変わるの? ノード同士のつながり。 だから変数は、ある値をもつノードへのリンクをもつ。 代入するということは、そのリンクを更新するということ。

じゃあポインタって何? 変数の場所を指すもの 結果として、その変数の変化を共有することができる じゃあnvにおけるポインタってなに? 変数ノードへのリンクをもつノードのこと それって変数では? たしかに。 じゃあそれでいいのでは? 変数に代入するということは、変数a, bが存在したときに a = b としたならば、 aのリンク先を、bのリンク先と同じになるように更新するということ。 a = &b としたならば、 aのリンク先を、bを指すように更新するということ。 a = *b としたならば、 aのリンク先を、bのリンク先のリンク先と同じになるように更新するということ。

でもこれって見た目的には不自然では? いやそんなことない? ああそうか、変数っていうものは、変数というシンボルそのものが、変数ノードの指す先の値、という意味で同じなんだ。

  • Op
  • StrLiteral(kStringのうち、文法上文字列として扱うことを強制する)
Clone this wiki locally