|
必聴講座ご紹介 Cloud Days Tokyo 2012 エムオーテックス Cloud Days Tokyo 2012 ヴイエムウェア Cloud Days Osaka 2012 アマゾン データ サービス ジャパン |
第1回 ウィトゲンシュタインとの対話メタソフト 早川 てつろう
ソフトウエア開発とは,究極的にはプログラミング言語によるコーディング作業である。世の中にはVisual Basic,C++,Java,COBOL,FORTRANなど,数え切れない種類のプログラミング言語がある。これらの言語はそれぞれ少しずつ書き方も文法も違っており,複数の言語を覚えるのは結構大変である。 ところで,プログラミング言語とは一体何なのか考えたことがあるだろうか。多くの人は,「コンピュータのプロになるにはプログラミング言語を覚える必要がある」というだけの理由で言語を習得しているのではないかと思う。だがITプロフェッショナルはそれでは済まされない。 知識を定着させる,短期間で知識を習得するコツは,その本質を理解することである。プログラミング言語の本質が理解できると,たいていのプログラミング言語はすぐに理解できる。 「論理哲学論考」(通称「論考」)という哲学の本を知っているだろうか。著者20世紀に活躍したはオーストリアの哲学者ルートヴィッヒ・ウィトゲンシュタインである。「語りえないことについては沈黙せざるをえない」という有名な言葉で終わるこの本が,プログラミング言語と深い関係があることは,知る人ぞ知る事実である。だが,そのような視点からこの本を紹介した文献はほぼ皆無であり,一般に知られるまでには至っていない。 この連載では「論理哲学論考」の内容を踏まえて,天国にいるウィトゲンシュタインとプログラミング言語についてディスカッションする。聞き手はエイダ(Ada)・ラブレースという女性である。(ウィトゲンシュタインとエイダについては末尾に紹介) プログラミング言語こそが私たちの言語の本質なのだ エイダ(以下A):「ねえ,すごく基本的な質問をしてもいいかしら?」 ウィトゲンシュタイン(以下W):「いいよ」 A:「今Visual Basicというプログラミング言語の勉強しているんだけど,これって言語なの?」 W:「言語さ」 A:「私たちが今話しているこの言葉と同じ?」 W:「ヤー(そうだよ)」 A:「なんか,違うような気がするんだけど……」 W:「それは君が言語の本質を分かっていないからさ」 A:「そうかしら」 W:「僕たちが使っている日常語は非常にあいまいなので,本質を把握するのは難しい」 A:「そう言われると,そんな気もするけど」 W:「僕はイタリアの戦場でずっと考えていたんだ。日常語の本質について。そして分かったんだ」 A:「変な人ね」 W:「そう。たしかに僕は変だ。ここにこうして生きていること自体,やっぱり変なのさ」 A:「そう考え込まないでよ。ところでプログラミング言語と日常語の関係はどうなっているの?」 W:「失敬。日常語をコンピュータの世界では自然言語と呼ぶだろう」 A:「そうね。人工知能の研究テーマの1つに自然言語処理というものがあると聞いたことがあるわ」 W:「この自然言語と対比されるのがプログラミング言語で,プログラミング言語は自然言語からあいまいさを排除したものなんだ」 A:「ふーん。じゃ,プログラミング言語こそが理想的な言語だっていうの?」
W:「ヤー,論理的な正確さという点で理想的だね」 A:「元からある自然言語よりも,後から人工的に作られたプログラミング言語の方が優れているなんて,なんかすごく極端な考えのような気がするわ」 W:「ナイン(違う),極端じゃない。僕が考え抜いた末の結論だし,普遍的な真理でもある」 A:「でも,それって何だかつまんない。プログラミング言語以外の日常語の部分は,全部無駄なおしゃべりだって,あなたは言うのね」 W:「語りうることだけが明確に語うる。語りえないことについては沈黙せざるをえない」 A:「それって,どういうこと?」 W:「まずは自分で考えてみてごらんよ。聞くだけじゃ,理解は進まないのさ,エイダ」 自然言語について 日常の言語はきわめてあいまいであり,多くの混乱や誤謬(つまりエラー)が生じる。 「このようなエラーを回避するためには,記号言語を使用しなければならない。この言語では,このようなエラーを除外するために,異なるシンボルに対して同じ記号の使用や異なったモードの意味表現をもつ記号を外見上類似の方法で使用することがない。つまり,それは論理的な文法,論理的な構文法(シンタックス)にのっとった記号言語である」(論理哲学論考3.325) 日常の言語のことを「自然言語」と呼ぶ。これに対して,人工的に構成された言語のことを,ウィトゲンシュタインは「記号言語」と呼んでいる。あいまいで錯綜している自然言語ではなく,エラーが入りこむ余地のない,記号言語が採用されなければならない,と言うのだ。それがプログラミング言語である。 「論理哲学論考」について 「論理哲学論考」は番号付きで記述された不思議な読み物だ。この番号は記述の構造を表す。数字の桁数が大きくなるにつれ,記述が詳細になる。つまり,この数字は,仕様書や設計書の「項番」と呼ばれる「項目番号」なのだ。より上位の記述(番号の桁数が少ない記述)を読んで内容が理解できたら,それ以降の詳細を飛ばしてもかまわない。 この記述形式を示すために冒頭の部分の拙訳を参考までに引用しておく。内容についてはこの連載中で明らかにするので,ここでは記述フォーマットだけに着目したい。 1 世界は事態の集まりである。 1.1 世界は事実の集まりであり,物の集まりではない。 1.11 世界は事実によって決定される。 1.12 事実によってその事態が成り立つか,成り立たないかが決まるからだ。 1.13 論理空間における事実が世界である。 1.2 世界は事実に分解される。 1.21 各事項はそれが成り立つか,成り立たないかということであり,このことは他の事項には影響を与えない。 「論考」は,1から7までの大項目でできている。勘のいい人は,以下の大項目を読むだけでウィトゲンシュタインの言いたいことを理解できるかもしれない。 1 世界は事態の集まりである。 2 事態,つまり事実とは,事象の状況が存在することである。 3 事実の論理的な像が思考である。 4 思考とは意味を持つ命題のことである。 5 命題は要素命題の真理関数である(要素命題はそれ自身の真理関数である)。 6 真理関数の一般形は[Р,ξ,N(ξ)]である。これは命題の一般形である。 7 語りえぬものについては沈黙せざるをえない。 |