ビスケットのあれこれ

ビジュアル言語ビスケット(Viscuit)に関するあれこれを書いてゆきます.

コンピュータの車輪ってなんだ.それはプログラミング言語.

2013-01-08 15:13:29 | 1

そういえば,車輪はいろんな用途に使われて,それに応じてすごい工夫がなされている.決して汎用の車輪なんかない.最初は木の車輪だったかもしれないけれど,自家用車,トラック,ジェット機など全然違うように発展してきた.車輪という機構そのものは昔発明されたものだけれど,それを実際に使うための工夫は現在でも常に行われているわけだ.

では,コンピュータでの車輪に匹敵するくらいの発明と言えばなんだろうか.それはその人によって感じ方が違うのだろうけれど,僕は「プログラミング言語」という考え方だと思っている.機械を直接動かす低レベルの命令ではなくて,人間が指令する高度なレベルの命令で動かすということ.もし,プログラミング言語が無ければ,今のようなコンピュータの発展があったのだろうか.

以下,Wikipediaからで申し訳ないが,一気に発明されたというよりは,少しずつ色々な人によって発明が積み重なってきたようだ.

最初は,ドナルド・ギリースの卒業研究の紙テープの上でのアセンブリ言語.紙テープに打ち込まれた文字列A100Fを解釈して機械語の数値に変換するという仕事をコンピュータにやらせる.ところが,指導教官のフォン・ノイマンはその開発を中止するように言ったという逸話があるようだが,フォンノイマンでさえも,プログラミング言語という大発明の未来は見えていなかったということであろう.当時はこれを自動プログラミングと呼んだそうだ.なかなかいい言い方かもしれない.

初めての高級言語FORTRANの場合は,ハンドアセンブルよりも高速に動作することが求められていた.プログラミングの手間よりも計算の高速性の方が優先されていた.そこで最初からコンパイラの最適化が求められた.最適化するコンパイラをアセンブラで作るというのもすごい話だね.

コンパイラをアセンブラから直接作るのではなくて,アセンブラよりは高級だけれど,コンパイラを動かすだけの最低限の機能を持った言語を中間に置くという方法も発明された.コンパイラ記述用言語.そんな言語を何段も重ねて,より高級なプログラミング言語が実際に動くようにする.そうやると,複雑な最適化もある程度高級な言語で作れるようになるから楽だろう.

こうしてみると,「記号を解釈する機械」があって,その解釈の仕方を別の記号で記述する,ということが実にすごい発明だったと言えないだろうか.

で,僕が普段から嘆いているのは,最近,新しいプログラミング言語が全然発明されないということだ.重箱の隅をつっつくようなんじゃなくて,もっと奇抜なものが欲しい.プログラミング言語の発明の度合いはこの10年くらい落ちまくっているのではないだろうか.最近面白かったのはEgisonだけど,そんなようなのが100個くらい発明されて欲しい.

Viscuitの前身の言語がVISPATCHというのだけれど,実はまったく子ども向けではない.文章で説明しても非常にわかりにくいものなので,そのうちYouTubeで説明しなきゃ.この図は自己拡張可能な図形エディタのプログラムをVISPATCHで記述したもので.ちなみにこれは僕の96年の研究.これでさきがけから研究費をどっさりもらいました.


最新の画像もっと見る

コメントを投稿