必然的に、流布されている「Lispが世界で二番目に登場した高級言語である」と言う話もウソだ、と言う事だ。
いや、失敗した。
と言うのも、プログラマが色々と虚言的な事を諳んじる、って事を知ってたのに、全く確かめようとしなかった、って辺りに自責の念がある。
「良く言われる事をそのまま言ってもダメだ」と言う典型的な例だよなぁ。マジで反省してる。しかもプログラマが「良く言う話」が全くアテにならん、と言う事を良く知ってたにも関わらず、と言う辺りが凄く痛い。
ポール・グレアムでさえ、正確な話はせん、と言う証明だ。
まぁ、情状酌量としては、一般にコンピューター・サイエンスは主にアメリカで発達した、と思われてる。実際はそれこそが誤解なわけだが。
そもそも、大前提として、アメリカ人って海外の動きとかに全く興味がない。America is No.1の思想だと、「我こそは最初に・・・」ってのがメンタリティとしてはあるわけだよ。
そして日本。基本的に何にせよ「アメリカが言う事が正しい」って戦後はどっか思ってるトコがあって、結果アメリカが言ってる事をそのまま受け入れる土壌がある。
従って、アメリカ人が「Fortranは世界初の高級言語だ」とか言えば、ロクに確かめようとせず、「そのまま」受け入れるんだろう。
そういうメンタリティが戦後ずーっと続いてるわけだ。
これはそういう類の話の証明の一つだ。
猛省してる。
さて、じゃあ、世界初の高級言語とは一体何なのか。
驚くべき事にこれが第二次世界大戦中、1942年から1945年の間、らしい。電子式デジタルコンピュータが登場する前である(笑)。
どういう事か、と言うと、元々は一種数学的な実験として生まれたらしい。
加えると、「コンピュータ」の理論自体はずーっと存在してた。有名なのに、
イギリスのチャールズ・バベッジが19世紀に作り上げたディファレンス・エンジン、と言うものがある。いや、作り上げた、っつーより「作りかけた」って言った方がいいのか(笑)。当時の工業技術だとちと完成させるのが難しかったんだよな。

ディファレンス・エンジン
いずれにせよ、「計算機械」と言うアイディア自体は19世紀に誕生し、そして「計算理論」と言う数学の一分野は、「電子式デジタルコンピュータ」が存在しない20世紀初頭に発達したわけだ。Lispが拠り所にしてるラムダ算法なんかも1930年代に登場してるし、今のコンピュータの理論的モデルと言われてるチューリングマシンを提唱したイギリスのアラン・チューリングも20世紀前半に活躍した人だ。
当然、今僕らが「コンピュータ」と聞いてすぐ今使ってるPC的なモノを想像するが、実はディファレンス・エンジン以降、20世紀に入ってから暫く経つと、一応「コンピュータ」と言われるモノが出てくるんだ。既に絶滅してるが(笑)。
そう、実は機械式コンピュータと言うモノがかつてはあったんだ。
それで1930年代にドイツではプログラマブルなモーター駆動型のコンピュータが作られる。

Z1

Z3
これらは機械式なんだけど、今のコンピュータと同様に2進数計算を行ってた模様だ。
そして「プログラマブル」と言う事は当然「プログラミングが可能」だと言う、驚くべき性能を持ってたらしい。
なるほど、これらはナチスが台頭してくる時期と被ってるので(※1)、確かに

なワケだ(笑)。
いずれにせよ、今のコンピュータのモデル、はノイマン式コンピュータ、と言われるが、それを提案したフォン・ノイマン自身がドイツの大学にいた事もあり(※2)、恐らくこういう「機械式コンピュータ」も良く知ってたんだろう。
さて、1930年代から40年代初頭にかけて、このドイツ製機械式コンピュータ、Z1〜Z3をデザインした人が、コニー・ツーゼ、と言う人だ。
そして彼が文字通り世界で初めての高級プログラミング言語、プランカルキュールを作成する。
発表は1948年で、実装自体はされなかった模様だが(つまりある種論文目的)、取り敢えず対象としては、Z1〜Z3用として考案されたらしい。
書かれたプログラムは次のような見た目だったらしい。
P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) → R0[:8.0]
max(V0[:8.0],V1[:8.0]) → Z1[:8.0]
max(Z1[:8.0],V2[:8.0]) → R0[:8.0]
END
P2 max (V0[:8.0],V1[:8.0]) → R0[:8.0]
V0[:8.0] → Z1[:8.0]
(Z1[:8.0] < V1[:8.0]) → V1[:8.0] → Z1[:8.0]
Z1[:8.0] → R0[:8.0]
END
うん、割にフツーの見た目だ(笑)。僕らが知ってる、いわゆる「プログラミング言語」だよな。スクリプトっぽいけど。
いずれにせよ、Fortranの10年以上前に「高級言語」が既にドイツで作られていた、と言うのは驚嘆に値する、だろう。
さて、こう書いてくると、「でも電子式のコンピュータ向けの世界初の高級言語はやっぱFortranじゃない?」って言う人もいるかもしんない。
それはそうなんだけど、一方、「高級言語」の存在価値ってのは、ぶっちゃけ、「使うハードウェアに依存しない」と言うのが原則だ。と言う事は高級言語は本来の意味からすれば、対象とするハードウェアが機械式だろうが電子式だろうが、関係ない、って事になる。
従って、やっぱり世界初の高級言語はプランカルキュールになっちゃうんだよ。
加えると、まぁこれは印象論なんだけど、「何らかを形式化する」ってのは歴史的にヨーロッパの人間の方が上手い気がする。つまり、「実用的な問題が生じて初めて仕事をする」アメリカ人より「抽象的に物事を形式化する」のが得意なヨーロッパの人間の方が、遥かに早く「高級言語」ってアイディアを思いつきやすいとは思うんだよな。
いずれにせよ、「世界初の高級言語はFortran」って言い出すプログラマに対してはプランカルキュールの存在を教えてあげよう。史実は彼らが考えてるようなモノではない、って事だ。実際は、少なくともFortranは世界で5番目かあるいはそれ以降に登場した高級プログラミング言語、ってのが史実となる(そもそも、Fortran設計者のバッカス、がIBMで設計した言語としてはFortranは二番目で、それ以前にSpeedcodingと言う言語をデザインしてた、と言う驚くべき事実がある)。
そして、プランカルキュールの後に登場したスイス製の(※3)Superplan(恐らく、世界で三番目に登場した高級言語)がプランカルキュールに直接の影響を受け、繰り返し用にfür構文を発明し、そしてそれがALGOLに取り入れられてCをハブとしてプログラミング言語界を席巻していく、と言う流れになるわけだ。
このように、計算機科学の世界では、思ったよりヨーロッパ勢の活躍が多く、そして貢献してた、と言う話だ(※4)。
※1: ナチスが登場するのは1920年代だ。
※2: 出身自体はハンガリーだ。
※3: 当然、開発されたのはチューリッヒ工科大学(アインシュタインの出身校)だったらしい。