On Type Systems for Object-Oriented Database Programming Languages

from ACM Computing Surveys (CSUR).

サーベイ論文というのは名前には聞いていたがこれくらい徹底してやるものだったとは.

いろんな言語における型の健全性を調べているのだが

  • データベースの側面から,どういう型の性質が求められているか
  • オブジェクト指向の側面から,どういう型の性質が求められているか

というのを論じたあと,10個のテストプログラムを用意している.名前だけ挙げてみる

  • PERSON
  • POINT
  • COMPARABLE
  • STREAMS
  • SORT
  • GENSORT
  • LIST
  • SET
  • APPLY
  • BROWSER


例えばSTREAMSテストはこんなの:

 class InputStream { ... }
 class Point {}
 class ColoredPoint extends Point {}
 ColoerdPoint cp;
 Point p;
 InputStream ps;
 InputStream cps;
 p =ps.read(); //1 Should be passed
 cp=ps.read(); //2 Should be compile error
 p =cps.read();//3 Should be passed
 cp=cps.read();//4 Should be passed

Javaだと, //3 のところがコンパイルエラーになるので失格.というかJavaは10個のテストのうち9個に失格している.

こんな感じで,10個のテストを,36個ぐらいの言語について行っている(つまり360回テストしている)という内容.

気になるのは優勝者(一番テストに合格した言語)だけど,TransframeとMini-Cecil が9個でトップ.おめでとう!って誰?