| 研究テーマ: Leaky Abstraction に関する ケーススタディ  | 
put(k,v); v = get(k);
SELECT * FROM User, Group WHERE User.Gid = Group.Gid;a[x,y] が使えるよ!leak = diff(仕様, 実装)leak = diff(仕様, describe(実装))仕様 … 日本語put(k,v); v = get(k); を提供する」
      実装 … プログラミング言語
      desc(実装) … 実装を日本語で説明したものput(k,v); v = get(k); をオープンハッシュ法で、
	100要素分の配列を使って提供する」 (赤い部分がリーク)
    つまり、仕様できちんと説明されていないもの。
parseInt(s) … sが実際に数のとき。
      fopen はファイルを開く」
	KeyEventは、
	コンポーネント中でキーストロークが起きたことを
	表すイベントです」
    オーバーヘッドが小さい (人間が気にかけるレベル)
memcpy
  rand()
  オーバーヘッドが中程度 (人間はときどき忘れることがある)
fork()
  std::string
  オーバーヘッドが大きい (ほとんどの場合、人間は詳細を把握しようとしない)