[Squeak-ja: 4372] Re: Smalltalk合同勉強会@名古屋の内容で質問します。

Takashi Yamamiya tak @ metatoys.org
2009年 10月 20日 (火) 15:28:04 JST


久保さん。

2009/10/19 kubo <kubo-o @ mbox.kyoto-inet.or.jp>:
> 問題の領域の方はなんとなくイメージできる?のですが、
> それを、どのようにしてreinventionしようとされているのか、
> 方法側がまったく見えません。
> 山宮さんのお話は、
> それをLispでどう取り組むのか
> ということなのでしょうか。

ご質問ありがとうございます。ご指摘の通り STEPS は広い範囲を目標にしてい
ますので、今私が関係している部分だけご紹介します。ドメイン特化言語とい
う用語が一番ぴったりだと思います。

プログラミング言語では大は小を兼ねるという事は無くて、問題に応じてちょ
うど良い複雑さの言語を選ぶ事で、プログラムが分かりやすく短くなります。
例えば文字列検索に使う正規表現は、ただ記法が短いだけでなく、1) 必ず停止
する。2) 入れ子構造を扱わない。という性質のおかげでバグが入りにくく
高速なコードを書けるという利点があります。

この考えを進めると、あらゆる問題領域にそれぞれのミニ言語があっても良い
という事になります。また、コンピュータへ入力は全て言語であると考える事
も出来ます。例えば、インターネットのパケットは、ある決まり事に従って送
られてきますし、マウスやキーボードからの入力もただのランダム信号では無
く、それぞれがあるゼスチャーとして解釈される言語です。するとコンピュー
タとは様々な言語を解釈するルール集だと考える事が出来ます。

STEPS の一部では、そのルールを記述するメタ文法として解析表現文法を、低
レベルな意味を記述するのに lisp 風の言語を使っています。lisp は一種の機
械語として使っているだけで、ユーザから見える部分は Smalltalk 風の言語に
なる予定です。

現在の Squeak の先祖である Smalltalk 72 の文法は今よりもっと柔軟で、文
法自体をプログラムとして書く事が出来ました。例えばブロック構文無しで処
理をメソッドに渡す事が出来ました。STEPS プロジェクトはそこまで先祖返
りしてあり得たかもしれない未来を Reinvention しようとしています。

山宮


Squeak-ja メーリングリストの案内