アプリケーションなどが自身制御手順を記録し、繰り返し利用する場合に使うプログラミング機能をマクロなどと呼んで、コンピュータ言語によるプログラミングとは区別していた。マクロは、アプリ内に実装可能な簡易な言語構造にならざるを得なかった。
また、場合によっては、単なるキーストロークの再生機能でしかなく、条件判断や、そもそも、現在のアプリの状態を知ることさえ困難なものもあった。しかし、ちょっとした複雑な作業を繰り返し実行できることは、作業効率を大きく改善できた。

特に、コンピュータを紙テープで使う場合、行の入れ替え作業などが必要になった。IBMなどのメインフレームで採用されたカードは、プログラムの1行がカード1枚に対応しているため、行の入れ替え、挿入、削除はカードを物理的に操作して行え、行内の修正ならば該当のカード自体を新規に作成すればよかった。

紙テープベースの場合、行の入れ替えや削除、修正を物理的に行うことは難しく、エディタに読み込ませて、修正したのち、全体をテープに出力(パンチ)する必要があった。こうしたなか、エディタのマクロを作り、これをテープに適用することで、テープの修正作業をバッチ処理化できた。ユーザーの操作時間を廃し、作業時間を短くすることで、コンピュータの負荷を大きく下げることが可能だった。

時は下り、1960年台末、電卓にマクロ機能が導入された。のちにこれらを「プログラミング(関数)電卓」と総称するようになった。世界初のプログラミング電卓は何かという命題は、電卓とは何かを明確することで特定することができた。電卓(Calculator)と計算機(Computer)の明確な定義がなく、メーカーが電卓だと言えば電卓になり、計算機だといえば計算機だった。

こうした現代的な定義から判断するに、世界初のプログラミング電卓は、1965年のオリベッティ・プログラマ101(Olivetti Programma 101)やMathatronics Mathatron 8-48M Model IIなどが該当する。


初期のプログラム電卓ではユーザーがキーを押し、それを記録することでプログラム(マクロ)を作成していた。つまり、プログラム電卓のプログラムとは、キーを押してそれを記録させて作るものだった。このとき、表示装置としては、俗に言うアラビア数字を直接表示するニキシー管やプリンタ、少し時代が下って、7セグメント表示デバイス(蛍光表示管や発光ダイオード)などが使われた。電卓では、表示技術で液晶が普及するが、文字が表示可能になるのは、1979年の関数電卓EL-5100や文字電卓EL-8160でドットマトリックス液晶が採用されてから。つまり、1979年以前には、プログラミング電卓のプログラム表示は、7セグメント表示デバイスか専用プリンタ(内蔵を含む)で行われた。専用プリンタの場合、キーの表示に近いキャラクタでプログラムリストを表示させることができた。

7セグメント表示の場合、大きく、キー位置表示方法とコード表示方法の2つがあった。前者は、キーを「上からx番目、右からy番目」という位置で表現していた。主にHP社の電卓が採用していた(写真01)。2桁の数字「xy」でキーを表すため、どのキーなのかが分かりやすい。反面、キーの意味と位置には特に関係がなく、キー意味を得るのに一手間かかり、コードが何を意味しているのかを判断しにくいという欠点があった。

もう1つのコード表示方法では、キーに対応したコードで機能(キー)を表現するもの。
7セグメント表示デバイスでは、アラビア数字以外に、いくつかのアルファベット文字を表現できた。たとえばCやF、Pなどである。これ以外のアルファベットも表示が可能なものがあるが、既存の数値と区別がつかない(例えば、Iと1、Sと5など)もあり、利用できる文字は限定される。

こうした方法を採るプログラミング電卓の1つにカシオのFX-502Pがある(写真02)。FX-502Pでは関数やGOTOなどのプログラミング機能もキー割り当てがあり、これらをFやCで始まる2文字のコードにしていた。この方法は、比較的覚えやすく、キーの機能も覚えやすい。その感覚は、16進数ダンプからプログラムを読み出していく「逆アッセンブル」に近いものがある。

今回のタイトルネタは、ヴォネガット(Kurt Vonnegut Jr.)の「プレーヤー・ピアノ」(1952年)である。同作品は、機械によって仕事の大半が可能になった世界を描く。筆者が1980年台に本書を読んだときには漠然と未来はこうなるのかもね、という印象でしかなかった。あれから45年が経過した。今では、こうした未来は曖昧模糊としたものではなく、あと少しで実現してしまいそうな状態になっていた。
もちろん、そうでない未来もあり得るが……。
編集部おすすめ