メッセージ。 - プログラミング言語について

# プログラミング言語について

「プログラミング言語」という言葉を初めて聞いたときに違和感があって、いまもその違和感のことは忘れていない。つまり、「言語ってなんですか?」と。ぼくにとっては、言語というのはあくまで自然言語のように捉えられている。うまく言えないけど、人間(知的主体)が人間(知的主体)とコミュニケーションするための手段が言語だと感じる。

逆に言うと、いま我々が使っている「プログラミング言語」というものは、単なる「オペレーションセット」(操作盤)であって「言語」ではないとぼくは考える。それはたとえば、車を運転するためのハンドルやアクセルやエアコンの操作パネルなどのような、要はスイッチ群だ。それらのスイッチを時系列・順列に、あるいは並列に組み合わせて、あくまで客体的な機械を意図するとおりに動かす。それがいまの「プログラミング言語」だと思う。

だから、100年後のプログラミング言語がどうなっているかというと、計算機が客体的なままであれば(またはチューリング機械であれば)、プログラミング言語もまた「オペレーションセット」のままその本質は変わらないだろう。

ただし、たしかまつもとゆきひろさんがおっしゃっていたように、現在でもほとんどの人々はコンピュータでプログラミングをしていない(にもかかわらず満足してコンピュータを使っている)。GoogleやYahoo!にアクセスしたりクエリを投げかけたりすることが、彼らにとっての「プログラミング」だという指摘は、納得できるものがある。

そしてまた、こうも思う。そのような「プログラミング」環境を考えたとき、はたして計算機は未だ客体的であるだろうか?と。それらの計算機(群)は常に内部データをアップデートし、また期待しない型の値を返してくる(こちらが質問を投げたら、計算機が質問を返してくるような)。

よく分からないのだけど、そういった計算機は、チューリング機械と言えるのだろうか? 科学が反証可能性を備えていなければならないように、チューリング機械もまた反証可能性を備えていなければならないのではないかとぼくは考える。つまり、「ある入力Aを与えたとき出力Bが得られる」という実行結果に対して、別のいつかほかの誰かがが再試験したとして、必ず同じ結果が得られることが「機械」であると。
2008-09-08 22:46:56 / ふじさわ / Comment: 0 / Trackback: 0

Comment

コメント投稿機能は無効化されています。

Trackback

TrackBack投稿機能は無効化されています。