Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

プログラミング言語

1 view
Skip to first unread message

Shinji KONO

unread,
Feb 17, 2007, 11:26:02 PM2/17/07
to
河野真治 @ 琉球大学情報工学です。

一番好きな言語は? と聞かれれば、アセンブラと答えると思う。
すぐ古くなっちゃうのがちょっとあれだが。

僕は、実装から遠く離れた言語には問題があると感じているらし
く、Pascal あたりまでは我慢できるんだが、それ以上、高級にな
ると使う気がしないです。

例えば、ML。最初に見たときに感じた違和感が大きくて、そこか
ら派生した言語は、自分的にはすべてだめ。Ocamlとか。プログラ
ムを見て実装が見えないのはだめだろ? あと、だめなのは遅延評
価系が入った関数言語ですね。Haskel とか。基本的にはグラフ処
理みたいな操作意味論を持つのだが、複雑すぎると思う。こちら
の言語だと、プログラムを見て計算量を見積もることも難しい。

前にも書いたけど、この手の1階述語論理レベルでの理論サポート
をしても、結局は、その上でメタインタプリタ的な構造を作って、
そこでad-hocなプログラムをするようになるので、無駄だと思う。
ad-hoc さは、プログラミングには必須なんだと思う。特に、オー
プンな型が必須。

ADAとか、あるいはPL/I、今時のFortranや Template 込の C++ み
たいな巨大な言語は、直観的にだめだと思う。

Object 指向言語も実は、メソッド呼び出しが不透明なことが多く、
あまり好きではないです。メソッドキャッシュがどうたらとかい
うのが入るのが嫌い。

逆にPrologは勉強するにつれ実装に近い言語だと認識するように
なりました。複雑な co ns (Cで言うmalloc, Java で言うnew) を
極めてコンパクトに書ける言語だが、そのうちのどれがstack上に
作られて、どれがheap上にできるのかを制御できる言語というの
は珍しい。操作意味論も実は明解だったりするし。型がない割に、
自分で型制御しやすいのも良い。でも、複雑すぎるね。

じゃぁ、Perl はどうなんだと言うと、symbol に結びつけられた
スカラと配列、そして、Hash を基本とした言語だと思うと、実装
が見えて来ます。まさにデータ処理言語なんだよね。OOの実装法
もPerlらしく透明。その他の似たりよったりOO script 言語とは、
そこが違う。

ad-hoc さの極みの言語と言えば、LISP でしょう。LISPを標準化
しようとするのは、実はLISPを殺すことに他ならなかった。Common
LISPは、コンパイラを前提にしたおかげで、つまらない言語にな
ってしまった。Squeak が、コンパイラを捨てて甦ったのと対称的
だと思う。

実装に近いと言えば、C アセンブラ。そこから、さらに複雑な関
数呼び出しを外したのが、今やっているCbC。まぁ、結局、自分で
欲しい言語を自分で作っているっていうだけなんだよな。

---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科

0 new messages