プログラム電卓

プログラム電卓は、コンピュータのようにプログラムを格納し、そのプログラムによって複雑な計算を自動で行うことができる電卓です。初期のプログラム電卓は、細長い磁気カードやROMカートリッジにプログラムを保存していました。後に、バッテリーバックアップされたRAMにプログラムを格納する方式も登場しました。BASICのような高水準言語でプログラミングできるものは、ポケットコンピュータと呼ばれることもあります。

1990年代初頭以降、プログラム電卓グラフ電卓へと進化しました。ドットマトリクス方式の液晶ディスプレイが安価に大量生産されるようになるまでは、プログラム電卓のディスプレイは1行の数字や英数字しか表示できませんでした。「プログラマブル電卓」という異称もあります。

プログラミング



プログラム電卓は、プログラムを書いて格納することで、複雑な手順を自動化したり、難解な問題を解いたりすることができます。初期は電卓独自のコマンド言語によるプログラミングでしたが、ハッカー電卓の主要インタフェースを迂回する方法を発見し、アセンブリ言語でプログラムを書くようになりました。これを受け、TIをはじめとする電卓メーカーは、ネイティブモードでのプログラミングをサポートし始めました。まず、そのようなコードを利用可能にするフックを公開し、後に通常のユーザーインターフェースで直接そのようなプログラムを扱えるように機能を整えていきました。

電卓向けのプログラムはインターネット上に多数存在し、PCにダウンロードして専用のケーブルや赤外線リンク、メモリカード経由で電卓にアップロードできます。また、エミュレータを使えばPC上で直接実行することも可能です。これを利用して、プログラム電卓向けに他のプログラミング言語インタプリタコンパイラを作成することもできます。例えば、TI-83やTI-84にはBBC MicroBASICが既に移植されており、他にもFORTRAN、AWK、PascalREXXPerlCommon LispPython、tcl、UNIX上の各種シェルなどの移植が議論されています。

プログラム電卓向けのソフトウェアとしては、数学科学に関連した問題を解くもの、ゲーム、デモなどがあります。多くは一般ユーザーが作成し、フリーウェアやオープンソースとして公開されていますが、教育および科学技術計算市場向けの有償ソフトウェアも存在します。グラフ電卓は表示画面が大きいため、スクロールせずにソースコードを複数行表示でき、通常のプログラム電卓よりもプログラミングが容易です。

プログラミング言語



キーストローク方式


初期のプログラム電卓は、キーを押す順序を記録する方式や、複数のキーストロークをバイトコードのようなものに変換して記録する、非常にシンプルなプログラミング言語を採用していました。条件分岐と間接アドレッシングが可能であれば、このような方式でもチューリング完全なプログラミングが可能です。キーストローク方式でチューリング完全なプログラム電卓としては、カシオのFX-602Pシリーズ、HP-41、TI-59などがあります。キーストローク方式のプログラム電卓は現在でも販売されており、HP 35s、カシオのfx-5800Pなどがあります。

BASIC


BASICは、デスクトップコンピュータやポケットコンピュータで広く採用されたプログラミング言語です。シャープ、カシオ、TIなどがプログラム電卓やポケットコンピュータプログラミング言語として採用しました。これらのBASICの方言は、キーストローク方式の長所を取り入れた電卓向けに最適化されており、一般的なBASICとの共通点は少ないです。

RPL


RPLは、ヒューレット・パッカードがプログラム電卓向けに採用した、逆ポーランド記法順などを特徴とする言語です。1987年リリースのHP-28Cから導入されました。

アセンブリ言語


初期のプログラム電卓では機械語を直接使うことはできませんでしたが、ハッカーインタプリタのインターフェースを迂回する方法を発見し、アセンブリ言語で直接プログラミングできるようになりました。最初にこの技法が使われるようになったのはTI-85で、モード切り替えにプログラミング上の欠陥があったためです。TI-83でも同様の技法が使われるようになると、TIとHPは愛好家がそのようなニーズを持っていることを認識し、アセンブリ言語用ライブラリの開発や開発者向けの詳細文書の公開を始めました。携帯型ゲーム機のゲームに似たようなものが、プログラム電卓(特にグラフ電卓)ですぐに開発されるようになりました。TIはTI-83やTI-89で正式にアセンブリ言語をパッケージとしてサポートし始めました。HPは2012年現在の最上位機種HP 50gでアセンブリ言語を内蔵しています。カシオはPB-1000でアセンブリ言語を搭載し、PB-1000Cでは搭載CPUのアセンブリ言語ではなく情報処理技術者試験のCASLを搭載していました。

その他


gcc開発スイートはHPおよびTIの一部機種にも対応しており、PC上でC、C++、Fortran 77、アセンブリ言語などを使ってプログラム電卓向けのソフトウェアを開発し、電卓にアップロードして使用できます。

電卓上またはPC上でコンバータ、インタプリタ、コードジェネレータ、マクロアセンブラ、コンパイラなどを開発するプロジェクトがいくつかあります。言語としては、FORTRAN、BASIC、AWK、C言語COBOLREXXPerlPythonTclPascalDelphi、各種シェル(DOS、OS/2のバッチやWindowsのシェル、Unix系のシェルなどがあります)などがあります。

プログラムの保存手段



プログラム電卓の重要な機能の一つに、プログラムを永続的に保存できる機能があります。この機能がないと、電池を交換した際にプログラムが消えてしまいます。プログラム電卓内に電池を取り外しても内容が消えないメモリを搭載する方式と、別の周辺機器を接続する方式があります。複数の保存手段を備える場合もあります。

磁気カードリーダ/ライタ


初期のプログラム電卓では、オプションの永続的保存手段として磁気カードリーダを採用していました。入力したプログラムを細長い磁気カードに保存します。磁気カードとそのリーダは小型で持ち運びが容易ですが、一般に非常に高価でした。磁気カードを採用していた最後の機種として、HP-41CとTI-59があります。

バッテリーバックアップ式メモリ


主電源を切ってもメモリの内容が消えないようにバッテリーバックアップを行う方式で、HPが最初に採用し、continuous memoryと名付けました。これにより、電池交換の際にもプログラムが失われないようになっています。なお、メモリ容量が増えてくると、完全なバッテリーバックアップは困難になってきました。そのため、電池交換にかける時間を2分以内などと制限する方式や、電池を2つ搭載して一度に1つしか交換できないとする方式などが登場しました。

カセットテープ


コンパクトカセットは、磁気カードよりも安価でシンプルな保存手段です。例えば、カシオはFA-1というインターフェースモジュールを発売し、プログラム電卓と一般的なカセットデッキを接続可能にしました。周波数偏移変調でデジタルデータを音響信号に変換して録音します。シャープとHPは、電卓に直接接続可能なマイクロカセットを使った専用レコーダーを発売しました。こちらの方が信頼性が高く便利でしたが、カシオの方式よりも高価でした。

フロッピーディスク


フロッピーディスクは適度に安価で扱いやすい便利な保存手段です。例えば、ヒューレット・パッカードHP-ILインターフェースを使用してフロッピーディスクドライブを接続可能にしました。このフロッピーディスクドライブ(HP 9114A/B)を利用すると、3.5インチ2DDフロッピーディスクに保存することができます。HP-ILを採用していた機種としては、HP-41C、HP-71B、HP-75C/Dなどがあります。

PCとの接続


プログラムやデータはパーソナルコンピュータに転送でき、PC上で保存できます。PCとの接続手段としては、登場年代順にRS-232、IrDA、USBなどがあります。PCを所有していることが前提ですが、ケーブルだけで済むので安価であり、カセットテープよりも高速です。初期の例としては、カシオのFX-603PとFA-6インターフェースがあります。この場合、プログラムやデータはプレーンテキストとして転送されるため、保存だけでなく、PC上のテキストエディタ編集も可能です。

フラッシュメモリ


最近では、フラッシュメモリなどの不揮発性メモリを挿入するスロットを備えているものもあります。

プログラム電卓とポケットコンピュータ



1980年代には、ハイエンドの電卓としてプログラム電卓とポケットコンピュータが存在し、両者はよく似ていました。例えば、どちらも非構造化BASICでプログラミング可能で、ほぼ例外なくQWERTY配列のキーボードを備えていました。

しかし、次のような違いがあります。

BASIC搭載のプログラム電卓には電卓型のキーパッドもあり、関数電卓のように扱えるモードを備えている。
ポケット[コンピュータ]]は、オプションで別のプログラミング言語を提供することが多い。例えば、カシオ計算機のAI-1000(日本国外ではPB-2000)には、C、BASIC、[[Prolog]、アセンブラ、(PB-2000のみ)LISPが提供されていた。

メーカーは両方の機器を製品として取り揃えていることが多く、カシオは当初、型番においてプログラム電卓に"fx-"をつけ、ポケットコンピュータには"pb-"をつけていました(後にFX型番でもフルキーで電卓モードなしのポケコンも出しています)。シャープBASIC搭載の全ての製品をポケットコンピュータとして販売していました。

主なプログラム電卓



カシオ計算機: FX-502P、FX-602P、FX-603P、FX-702P、FX-850P、Casio 9850シリーズ、Casio 9860シリーズ、Casio ClassPad 300
ヒューレット・パッカード: HP-10Cシリーズ、HP-25、HP-28シリーズ、HP 35s、HP-41C、HP 48シリーズ、HP-65、HP 49/50シリーズ、HP 38G、HP Prime
シャープ: PC-1401、PC-1403
テキサス・インスツルメンツ: TI-58 C、TI-59、TI-66、TI-84 Plus シリーズ、TI-Nspireシリーズ、TI-89 シリーズTI-92シリーズ
Elektronika(ソ連・ロシアのブランド): B3-21、B3-34、MK-61、MK-52、MK-85、MK-90、MK-92、MK-98、MK-152、MK-161
Sinclair(英国): Sinclair Cambridge Programmable




もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。