HP-28S電卓の記憶:RPL言語と単位換算の革新
HP-28S電卓の記憶:RPL言語と単位換算の革新

1980年代の終わり頃、筆者はHP-28Sという電卓を購入した。それまで長年HP-19Cを使用していたが、LSI技術の進歩により関数電卓やプログラム電卓は小型化・薄型化し、電池寿命も延びていた。やむなく国産電卓を使うこともあったが、久しぶりにHPの電卓売り場(おそらく紀伊國屋書店)を訪れた際、手帳型のこの機種を見つけて購入した。購入時には簡単な日本語ガイドと英語マニュアルが付属し、日本語マニュアルは後日別売りされたと記憶している。

革新的なハードウェアと表示

HP-28Sは縦長のクラムシェル型で、液晶が本体右側、アルファベットキーが左側にある「左開き」のデザインだった。後年国内で販売された電子手帳は左側液晶・右側キーの「右開き」が一般的だった。表示装置はドットマトリックス液晶で、23文字×4行(137ドット×32ドット)の解像度を持つ。従来のHP-19Cが7セグメントLEDの1行表示だったのに比べ、格段の進歩だった。アルファベット表示が可能になり、16進数も扱えるようになった。

メモリは32キロバイト、クロック周波数は1MHz(HPのSaturnコア)で、計算速度も大幅に向上した。大学時代に階乗計算プログラムを作って比較したところ、HP-19CはカシオのFX-502Pよりもかなり遅かった。

Pickt横長バナー — Telegram用の共同買い物リストアプリ

RPL言語の採用

通常の電卓として使う分には従来のRPN(Reverse Polish Notation)方式でそのまま利用できたが、内部構造は大きく異なっていた。この電卓はRPL(Reverse Polish Lisp)という言語(System RPL)で記述され、プログラミングもRPL(User RPL)で行う。RPLはスタック言語のFORTHやリスト処理のLispをベースに、リソース消費の少ない言語として作られた。従来のRPNはキープログラミングに制御ステートメントを追加したものだったが、RPLはブロック定義やローカル変数定義も可能な本格的な言語である。スタックはメモリがある限り何段でも利用でき、RPNの4段固定スタックとは異なり、スタックの状態を常に考える必要がなくなった。

RPLは数式処理やグラフ表示などの高度な機能を持つ電卓を記述する言語として開発された。System RPLはコマンド実行時にパラメーターチェックを行わないため、演算対象の不存在や型不一致でシステムが停止することがあったが、実行速度を確保するために必要な設計だった。一方User RPLは実行前に対象をチェックし、適切なエラー表示を行うため、システム停止はないが実行速度は遅くなる。

単位換算機能の魅力

HP-28SはHP-28Cの後継機種で、筆者が気に入った機能の一つに単位換算がある。複雑な単位換算やSI接頭辞の処理が可能で、メートルにギガを付けて「Gm」として換算し、「1ギガメートルは何メガメートルか」を計算させることもできた。

さらにユーザーが単位を定義し、それを使った換算も可能だった。例えば「byte」と「Kbyte」を変数として定義し、リストで換算値と単位を設定する。変数byte = { 1 "1"}、変数Kbyte = {1024 "byte"}とすることで、5 Kbyteが何byteかを計算できる。この方法で「Mbyte」を{1024 "Kbyte"}と定義していけば、次々とユーザー定義単位を作れた。小数点を使った0.5メガバイトなどの表記を整数表記に直すのに、当時単位換算は必須の計算だった。

後継機種への継承と終焉

このRPL方式は後継のHP-48、HP-49系に引き継がれさらに強化された。HP-48系では単位換算に加え、同じ次元の異なる単位(マイルとフィートなど)間の演算が可能になった。例えば「1フィートと3インチを足す」ことができ、単位はアンダーバーを前置して「3_m」と表記でき、シングルクオートが不要になった。

Pickt記事後バナー — 家族イラスト付きの共同買い物リストアプリ

しかしこのRPLも、HP-49系を最後に製品が登場していない。HP社は電卓部門を廃止し、サードパーティーによる製造を経て、現在はブランド貸しでかろうじてHPブランドの電卓が市場に残るのみである。

今回のタイトルネタは、1970年の英国TVドラマ「UFO」(邦題『謎の円盤UFO』)のエピソード「Computer Affair」だ。UFO攻撃に失敗した要撃機インターセプター3機は衝突回避のコース変更をオペレーターに要求するが、1機は変更が間に合わず攻撃されてしまう。コンピュータの指示ミスか、人間のミスか。さらにオペレーターと生き残ったパイロットの親密な関係が判明し、状況は複雑になるが、組織として問題解明が必要だった。