【第9号】エクセルの野望・プログラムの本質

「エクセル」の数式がついに「まともなプログラミング言語」に!?
金谷一朗(いち)
2021.02.19
読者限定

いちです,おはようございます.

このニュースレターを執筆中の2021年2月14日に,東北地方で大きな地震がありました.被災された皆様には心よりお見舞い申し上げます.引き続き大きな揺れには充分ご注意下さい.

さて,皆さんは表計算ソフトを使っておられるでしょうか?あれです,マイクロソフト社のエクセルとかです.最近では表計算だけでなく「レイアウトのしやすい『ワード』の代わり」つまり「エクセル方眼紙」としても使われていますね.

エクセルには「関数」という機能があります.例えば10個のセルの数値の合計を求めるには,10個のセルの足し算をするのではなく,合計を求める関数(SUM)を使うことでしょう.合計を求めたセルの隣に,消費税分を上乗せした金額を計算するための別のセルを置くこともよくあります.

関数の中には,条件付きで実行されるものもあります.例えば,ある範囲のセルの中で,数値が100よりも大きいものの個数を数える(COUNTIF)などですね.このような関数を使えるようになると,エクセルの中級者と言えるのではないでしょうか.僕などはまだ初級と中級の間を行ったり来たりしているレベルです.

エクセルの野望

先週,マイクロソフトCEOのサティア・ナデラ氏がこんなツイートをしました.

世界で最も使われているプログラミング言語,エクセルの数式がついにチューリング完全(筆者注:「まともなプログラミング言語」の霊験あらたかな言い方)になりました.
ナデラCEO

このツイートは二重の意味で間違っています.まずエクセルの数式は「世界で最も使われているプログラミング言語」ではありません.プログラマはエクセルの数式を「プログラミング言語」とはみなしません.ただ,これは習慣的なもので,プログラミング言語と呼んでおかしいわけでもないのです.

これは,元ツイートの二つ目の間違いに繋がります.エクセルの数式は最初から「まともな」プログラミング言語でした.「まとも」というのが「任意のプログラムを書ける」という意味においてですが.[参考文献1]

しかし,いったいプログラムとは何なのでしょうか.

プログラムとは,ある人にはコンピュータへの司令書であり,ある人には思考の道具であり,ある人には魔法の呪文かもしれません.

最初に答えを言ってしまいます.プログラムとは数式です.

大抵の教科書には,プログラムが数式だとは書いていません.大学で使われる教科書でさえ,プログラムが数式だと明記しているものは少数です.しかし,厳密に数学的な手法で,プログラムとは数式の一種であることが証明できます.

世界初のプログラムは?

皆さんはプログラムの歴史がどのぐらい遡ると思われますか?世界初のデジタルコンピュータと言われているドイツのツーゼZ3やアメリカのエニアック(ENIAC)の登場が1940年代ですから,そのぐらいでしょうか?いいえ,違います.プログラムの歴史は1801年のジャカード織機(フランス)にまで遡ります.織機とはご存知の通り,さまざまな模様の布を織り上げる機械です.

David Monniaux, CC BY-SA 3.0
David Monniaux, CC BY-SA 3.0

現代の織機は経糸(たていと)と緯糸(よこいと)を組み合わせる際,経糸の上げ下ろしを個別に制御して,複雑な模様を表現することが出来ます.この制御を初めて自動化したのがジャカードでした.日本で最初にジャカード織機を導入したのは京都の西陣でした.1872年のことだそうです.

このジャカード織機が画期的だったのは,パンチカードと呼ばれる穴の開いたカードを読み込ませる事で,織物の模様を指定することが出来たことです.現代ではこのパンチカードはフロッピーディスクに置き換えられています.フロッピーディスク,懐かしいですね.2014年には,西陣でフロッピーディスクが不足したため全国に提供を呼びかけるという事態も起こりました.

…と執筆していましたら,なんとパンチカードもまだ現役で使われていることを発見しました.実に息の長い技術ですね.

このように,機械(ハードウェア)の方は固定しておき,パンチカードやフロッピーディスクのようなメディアに書き込まれた司令書によって機械の動作を変えるわけですね.この司令書をプログラムと言います.ハードウェアという語はもともと金属製品を指す言葉でしたが,今ではコンピュータを表す言葉になっています.そして,ハード(硬い)ウェアに対して,プログラムのことをソフト(柔らかい)ウェアと呼びます.そう言えばパンチカードやフロッピーディスクも柔らかい素材で出来ていましたね.

「ソフトバンク」創業者の孫正義さんは,社名を「ソフトウェアの銀行」という意味で付けられたそうです.[参考文献2]2015年,大統領就任前のドナルド・トランプさんを訪問した際,トランプさんはトランプタワーのロビーで報道陣に “This is Masa of SoftBank from Japan” とだけ紹介して,孫さんを置いて去っていってしまったことがありました.翻訳すると「こいつは日本から来た『やわらか銀行』(ソフトバンク)のマサだ」とだけ言ったわけです.報道陣がぽかんとしていた理由もわかりますね.

ともかく,プログラムとはコンピュータの動作を変更するための司令書と覚えておけば間違いはありません.オーケストラに対する楽譜のような存在ですね.コンピュータは日本語では計算機ですから,計算機のための楽譜という意味で「算譜」という訳語がかつて使われていました.

ここから先は限定公開です

下記からメールアドレスを入力するだけで続きを読むことができます。

すでに購読された方はこちら

ログインする