青柳龍也・神田陽治* ・田中英彦(東大工学部、 *富士通国際研)
´l . NameMaster
N a m e M a s t e rは名前のデータベース（ネームベース）を管理し、名前に関するサービスを行なう。計算機を利用する際に、我々は様々な名前と遭遇し、また、自ら名前を作り出していく。エンドユーザからシステムプログラマまで、どのような立場で計算機を利用するかにかかわらず、名前と接する機会は多い。名前はファイル名であったり、コマンド名であったり、プログラム中の変数名であったりする。名前は重要である。モジュールの外側につく名前- -例えば、サプルーチン名、オプジェクト名、ファイル名等– –は、そのモジュールにアクセスする際のキーとなる。そのモジュールへのアクセスは、この名前によって容易になったり、困難になったりする。モジュールの内剛に出現する名前- -例えば、変数名、定数名第- - -はそのモジュール（プログラム）の読解性のキーとなる。この名前によりプログラムは読みやすくもなるし、わかりにくくもなる。プログラムを組む際に、我々は既存のモジュールを参済にしたり、修正したり、闭利用したりする。まったくのゼロからすべてを組み上げることはほとんどない。既存のモジュールは、過去に自分の作ったプログラムであるかもしれないし、システムの提供するライブラリであるかもしれない。既存のモジュールの両利用には、第一に、そのモジュールへのアクセス、第二に、そのモジュールの理解が必腹である。多くのモジュールの中から、望みのモジュールを選び出すときには、そのもジュールの外側につく名前が重要である。そして、セジュールの内容を理解するには、そのモジュールの内側に現われる名前が鍵となる。名前は重要である。しかし、その重要性はブログラミングの作法、精神論として説かれてきたに過ぎない。日く、「意味のある変数名を使おう」、「退同のおそれのない名前を使おう」等（１）。我々の主張はこうである。重要な「名前」は計算機で扱う必要がある。名前を管理し、よい名前づけを支援し、また、ネームベースを利用した種々のサービスを行なう計算機システムN a m e M a s t e rが必要である。我々はＮａｍｅＭａｓｔｅｒの研究を進めている[ 2 ] 。これまでに、いくつかの成果は得られているが、実用的なシステムには程違い。本稿では、N a m e M a s t e rの実現に向けてどのような研究を行なっていくかについて述べる。
2. NameMasterの方向
N a m e M a s t e rの第一の機能は、よい名前づけの支援である。よい名前づけの支援に関して、現時点では、次の２つの段階を分けて考えている。 1）名前の評価2 ）  ∑ iiij O) '|_成名前の評価は、与えられた名前がよい名前であるかどうかを判定するものである。これは、コンパイル時に行なわれる。この点に関しては、これまでも研究されてきた[ 2 ] 。名前の生成に関しては、未だ研究されていない。よい名前の生成を自動的に行なうことは困離と思われるので、生成を支援するようなシステムになるであろう。多くの名前及び名前に関する情報を持つネームベースを利用し、喉補となりそうな名前をネームベースから引き出すようなシステムとなるであろう。 N a m e M a s t e rの第二の機能は、ネームベースを利用した移々のリービスである。例えば、名前をキーに、必要なモジュールを検索することが考えられる。よい名前づけがなされていること、ネームベースの中には名前周士の関係も記憶されていることなどから、単なるはーワード検索以上の効果が明けできる。以上めげたＮａｍｅＭａｓｌｅｒの機能を実現するためには、次のような項目を研究していかなければならない。 1）よい名前とは何か。 2）人間の名前づけの過程3）ネームベースの管理、構築法以下、これらの各点について検討する。 Toward the Realization of NameMaster Tatsuya Aoyagi, Youji Kouda*, and Hidehiko Tanaka University of Tokyo, *fujitsu 5D-4
３．よい名前の研究
よい名前とはどんな名前か。N a m e M a s t e rが名前を評価し、よい名前の生成を支援するためには、その対象であるよい名前の研究が必須である。よい名前について、現時点でわかっていることは少ない。計算機上で実装できるほど形式化された理論はない。しかし、よい名前が持つであろういくつかの性質については、多少の知見がある。以下それを述べる。よい名前とは、「瞬時にその内容がわかる」名前である。 「瞬時にわかる」ためには、その名前は、 1）適切な長さを持っていなければならない。人間が一瞬にして議別できる文字数には限界がある。その限界はどれ位か。文字の種類（大きさ、大文字・小文字、字体など）によって変化するだろうか。この点も研究の課題であろう。心理学的な実験が必要となるかもしれない。適切な長さがどの位かわかったら、次はその長さの名前を作る方法が必要となる。省略形の利用が一つの方法である。どのような省略形が人間にとってわかりやすいか。これが次の課題である。次に、「内容がわかる」とはどういうことか。ここで注意しなければならないのは、「名前をつけるというのは、ある殿念に、それに対応する表現を割り当てること」ではないという点である。有名な例に、色の名前の例がある。我々は、赤い色を「赤」という名前で呼び、青い色を「青」で呼ぶ。これは、赤い色という擬念や青い色という概念が既に存在して、それに「赤」という表現や「青」という表現を対応させたということなのだろうか。否である。我々は、「赤」、「黄」、「緑」、「宵」等の言葉を用い、これらの言葉の間の関係によって、連続的な概念を切り分けたのである。日本人は虹を７色に分けるが、ある人種は２色とか３色に分けると音われている。当然そのような人種は、虹の色を表現するのに２つもしくは３つの言葉しか持たない。すなわち、もともと赤い色という概念があって、それに「赤」という表現が対応づけられるのではなく、様々な色の表現の間の関係によって、界念が切り分けられるのである。その切り分け方は、人種により、言語により、個人により異なる。よって、「内容がわかる」ということは、
2）関係がわかる
2 ´ ）差異がわかるということである。色の例で言うと、「赤」ということがわかるには、それが、「黄」、「緑」、「青」等と関係していて、それらと比べて長い波長の色を表わしていることを知る必要がある。「赤」を教えるためには、 「黄」、「緑」、「青」等を教える必要がある。以上のことから、単体では名前を評価することができないことがわかる。N a m e M a s t e rではシステムの提供するライプラリの存在を仮定し、その中の名前との関係の上でよい名前を求めていくことになるだろう。
、1 _ .人間の名前づけの過程
N a m e M a s t e rがよい名前づけを支援するためには、人間がどのようにして名前をつけているかを知る必要がある。人間の名前づけ過程がわかれば、そのどの部分を計算機で支援することができるかがはっきりするであろう。ファイル名のつけ方に関する多少の研究は存在するが[ 3 ] 、この分野は未だほとんど研究されていない。
５．ネームベースの節理、構築法
ネームベースには名前の関係、差異が記録される。3で述べたように、よい名前では、関係が重要になる。ネームベースは、名前に関する有用な情報を記憶しなければならない。このため、ネームベースは、名前間の関係性、差異性を反映するように構築されねばならない。これが橋築法の研究課題の第一点である。構築法にはもう一つの意味合いがある。N a m e M a ｓｔｅｒはシステムの提供するライブラリを仮定している。そのライブラリに関するネームベースをどうやって作るか、人手でーつーつネームベースに情報を入れていくのか、シイプラリを作ると自動的にネームベースが構築されるのか。知識獲得の問題、これが第二点である。
. © .おわりに
ＮａｍｅＭａｓｔｅｒの実験システムはＩＣＯＴの推論マシンＰＳＩ [ 4 ]上に開発する予定である。具体的にはエディタ、ライブラリアンに組み込んでいくことになるだろう。
<参考文献>
[ 1 ] Kernighan,B.W. and Plauger,P.J.,"The Element s of Programming Style" [ 2 ]神田、”並列オプジェクト指向計算機システムＯ R A G A ” 、東京大学情報工学博士論文[ 3 ] Carrol,J.R.,"What's in a Name? An Essay in t he Psychology of Reference", Freeman, 1985 [ 4 ] Taki et al,"Hardware Design and Implementati on of the Personasl Inference Machine(PSI)", fgcs'8 4, ICOT, 1984