KLIC 逐次処理系は、 ユーザが独自に追加したい機能を拡張できる枠組み(ジェネリ ック・オブジェクト・インタフェース)を持っており、共有メモリ拡張でもジェネ リック・オブジェクトの枠組みにより拡張した。
逐次実装と共有メモリ実装とのもっとも大きな違いは、共有メモリ 変数の存在である。共有メモリ変数はその書換えの時に 特別な扱いを要する。具体化する場合にはロ ックが必要であるし、フックする時にもロックが必要である。共有メモリ上の共有 メモリ変数以外のデータ(具体値)へのロックは不要なので、共有メモリ変数はこれ らと異なった特別なデータタイプにする。
共有メモリ変数は SHVAR というジェネレータオブジェクトで実現される (このオブジェクトは、runtime/gg_shvar.cなるファイルで 定義されている)。 共有メモリ上のそれ以外の基本データタイプは逐次処理の対象データと同じであり、そ れらのデータに対しては、ロックのオーバヘッドは加わらず、局所メモリのデ ータにアクセスする場合と何等変わらない。
各ノードには固有の局所メモリを 持ち、ノード間で共有する1つのメモリ領域を持つ。局所メモリはその持ち主 のみがアクセスする。共有メモリ変数を局所データで具体化するときには、共有 メモリ変数に局所データへポインタ付けするのではなく、局所データを共有メモリ にコピーした上で、変数にポインタ付けする。