プログラム電卓
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/12/20 19:57 UTC 版)
プログラム電卓(プログラムでんたく、英語:programmable calculator)は、電卓の一種で、複雑な計算を自動でさせるためにユーザが自分でプログラムを書いたり、実行できるもの[1]。英語表記寄りのカタカナ表記を使い「プログラマブル電卓」と書くこともある。
概説
プログラム電卓は、通常の電卓の機能に加えて、特定の計算や操作を自動化するためのプログラミング機能を持つ計算機である。ユーザーは事前に計算手順をプログラムしておき、そのプログラムに従って複雑な計算や反復的な計算を効率的に実行できる。
プログラム電卓の多くは、プログラムコードや計算結果を表示する機能を持っており、ユーザーがプログラムの進行状況や結果をリアルタイムで確認できる。
ユーザがキー(ボタン)を押す順番を記憶してそれを繰り返すことができる「キーストローク方式」のほか、プログラミング言語のインタプリタやコンパイラのプログラムを書き実行できるプログラム電卓もある。例えば、TI-83やTI-84には BBC Micro のBASICが既に移植されている。[注釈 1]
プログラム電卓向けのソフトウェアとしては、数学や科学に関連した問題を解くものや、ゲーム、デモなどがある。#用途の例
メーカー側が作成したサンプルプログラム集で書籍化されオプション販売されているものもあり、それが"抱き合わせ販売"や"本体購入者へのプレゼント"として本体の販売促進に使われる場合もある。また教育用や科学技術計算用の有償ソフトウェアも販売されている。1990年代後半以降にインターネットが普及してからは、一般ユーザーが作ったフリーウェアやオープンソースも公開され、ダウンロードできる形でも存在している。そういったプログラムをPCにダウンロードし、専用のリンクケーブルや赤外線リンクやメモリカード経由で電卓にアップロードすることもできる。また、エミュレータを使えばPC上で直接実行できる。
なお、グラフ電卓は表示画面が大きいため、スクロールしなくてもソースコードを複数行表示でき、1行表示のプログラム電卓よりもプログラミングが容易である。
歴史
1967年にカシオが"電卓"のAL-1000を発売。もともと"電卓"は「電子式卓上計算機」の略で、1960年代の"電卓"というと数十センチ角ほどの大きさとかなりの重量があるマシンで、このAL-1000もそういう大きさと重量だったが、このAL-1000は簡素なプログラム機能も内蔵しており、カシオはこれが世界初のプログラム電卓だとしている。
1968年にヒューレットパッカード (HP)が発売したHP9100 A/Bは、基本的な条件ステートメント(IF文)、ステートメントの行番号、ジャンプステートメント(goto文)、変数として使用することの出来るレジスタ、および原始的なサブルーチン機能を持っていた。そのプログラム言語はさまざまな面でアセンブリ言語と類似していた。
1974年にヒューレット・パッカード はHP-65を発売。HP-65は"ポケットサイズ"より少し大きい寸法で、磁気カードリーダ/ライターを内蔵しており、プログラムのセーブ/ロードが可能。「磁気カードにプログラムを格納できる世界初の携帯可能なプログラム電卓」である。100キーストローク分の命令列を格納できる。レジスタが9個あり、逆ポーランド記法 (RPN) を採用しており、作業用スタックは4段である。14.7cm×8.1cm×3.4cm。312 g。795ドル。
1977年5月にテキサスインスツルメンツ(TI)はTI-59を発売。やはり "ポケットサイズ" よりやや大きいくらいで、プログラミングモードはキーストローク記録方式だったが、最大ステップ数は960。最大10種のプログラムを記憶し、アルファベットキーからワンタッチでプログラムにアクセスできた。メモリモジュール(ROM)にあらかじめ記憶されているプログラムも使うことも可能。ユーザーが記述したプログラムからモジュール内のプログラムをサブルーチンとして利用することも可能。条件分岐、ループ、メモリ・レジスタへの間接アクセスをサポートし、アルファベット・数字をプリンターで出力可能だったが、複雑なプログラムを記述するには、別に紙で表のようなものを書くなどして、まるで機械語を綿密に書くような作業が必要だった。299.95ドル。(なお、同時に発売されたTI-58はTI-59の廉価版で、磁気カードが使えなかった。)
このように、もともと各電卓独自のコマンド言語によりプログラミングできるものだったが、やがてハッカーが電卓の主要インタフェースを迂回する方法を発見してアセンブリ言語でプログラムを書くようになり、TI社がネイティブモードのプログラミングをサポートしはじめた。まず、そのようなコードを利用可能にするフックを公開し、後に通常のユーザインタフェースで直接そのようなプログラムを扱えるよう機能を整えていった。
カシオは1978年後半にFX-502Pの製造を開始、(発売時期は資料により異なり、はっきりしないが)1978年終盤から1979年前半ころ。ポケットサイズ、軽量(長さ 143 mm x 幅 74 mm x 厚さ 9.6 mm、103 g)。プログラムモードはキーストローク記憶方式で、プログラムステップ数は最大256。数値メモリを22もち、条件ジャンプ、無条件ジャンプ、サブルーチン分岐機能を有し、「P0」~「P9」のキーにプログラムを別々に格納し、それぞれプログラムやサブルーチンとして使え、LBL0からLBL9として、ジャンプ先や分岐先指定のラベルとして使用できる。発売当時の標準価格は24,800円。本機用のサンプルプログラムを集めた分厚い本も販売(あるいは抱き合わせ提供)された。オプションのインタフェース「FA-1」を使えばテープレコーダ(やラジカセ)をデータレコーダとして使いプログラムやデータをカンサスシティスタンダード方式でコンパクトカセットに保存できる。少しユニークな機能だが、インタフェース「FA-1」を使えば単音で音楽演奏することもできた。(なお、同時期に発売されたFX-501PはFX-502Pの廉価版で、記憶できるステップ数が半分の128だった。)
カシオは1981年に後継機種のFX-602Pを発売。キーストローク記憶式であること、インタフェースを使いカセットテープにプログラムを保存できることなど、基本機能はFX-502Pと変わらなかったが、ステップ数は倍の512になり、また目に見える変化として表示部が1行11桁のドットマトリクス液晶 + 3桁の7セグメント指数表示となった。そのほか処理速度も、FX-502Pと比べて加算の繰り返しで1.1倍ほど、積分計算で1.8倍ほどになった[2]。FX-601Pは廉価版で、プログラムステップ数は最大128。
カシオは1990年に後継機FX-603Pを発売。速度がFX-502Pと比べて、加算で3倍、積分で7.6倍とかなり高速になった[2]。
プログラミング方式や言語
- キーストローク方式
- 初期のプログラミング電卓は、非常に単純なプログラミング言語を採用しており、実際にキーを押下する順序を記録する方式や複数のキーストロークをバイトコードのようなものに変換して記録する方式がある。条件分岐と間接アドレッシングが可能であれば、このような方式でもチューリング完全なプログラミングが可能である。キーストローク方式でチューリング完全なプログラム電卓としては、カシオのFX-602Pシリーズ、HP-41、TI-59 などがある。キーストローク方式のプログラム電卓は2012年現在も販売されており、HP 35s、カシオのfx-5800Pなどがある。
- BASIC
- BASICは、デスクトップコンピュータやポケットコンピュータで広く採用されたプログラミング言語である。シャープ、カシオ、TIなどがプログラム電卓やポケットコンピュータのプログラミング言語として採用した。これらのBASICの方言はキーストローク方式の長所も取り入れた電卓向けに最適化されたものである。したがって、一般的なBASICとの共通点は少ない[3][4][5]。
- RPL
- RPLはヒューレット・パッカードがプログラム電卓向けに採用した、逆ポーランド記法順などを特徴とする言語である。1987年リリースのHP-28Cから導入した[6]。
- アセンブリ言語
- 初期のプログラム電卓では機械語を直接使うことはできなかったが、ハッカーがインタプリタのインタフェースを迂回する方法を発見し、アセンブリ言語で直接プログラミングできるようになった。最初にこの技法が使われるようになったのは 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言語、COBOL、REXX、Perl、Python、Tcl、Pascal、Delphi、各種シェル(DOS、OS/2のバッチやWindowsのシェル、Unix系のシェルなどがある。
プログラムのセーブ手段
プログラム電卓の重要な機能の1つとして、プログラムを永続的にセーブしておける機能がある。この機能がないと、電池を入れ替えたときなどにプログラムが消えてしまう。プログラム電卓内に電池を取り外しても内容が消えないメモリを搭載する方式と別の周辺機器を接続する方式がある。複数のセーブ手段を備える場合もある。
- 磁気コアメモリ
-
→詳細は「磁気コアメモリ」を参照
CASIO AL-1000に採用された方式。[7]
- パンチカード
-
→詳細は「パンチカード」を参照
- 磁気カードリーダ/ライタ
- 初期のプログラム電卓はオプションの永続的セーブ手段として磁気カードリーダを採用していた[8]。入力したプログラムを細長い磁気カードにセーブする。磁気カードとそのリーダは小型で持ち運びが容易である。しかし、一般に非常に高価だった。磁気カードを採用していた最後の機種としてHP-41CとTI-59がある。
- バッテリーバックアップ式メモリ
- 主電源を切ってもメモリの内容が消えないようバッテリーバックアップを行う方式で、HPが最初に採用し continuous memory と名付けた。これは電池交換の際でもプログラムが失われないようになっている[9]。なお、メモリ容量が増えてくると、完全なバッテリーバックアップは困難になってきた。そのため、電池交換にかける時間を2分以内などと制限する方式[10]、電池を2つ搭載して一度に1つしか交換できないとする方式などが登場した。
- カセットテープ
- コンパクトカセットは磁気カードよりも安価で単純なセーブ手段である。例えばカシオは FA-1 というインタフェースモジュールを発売し、プログラム電卓と一般的なカセットデッキを接続可能とした。周波数偏移変調でデジタルデータを音響信号に変換して録音する[11]。シャープと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上のテキストエディタで編集も可能である。
- フラッシュメモリ
- 最近ではフラッシュメモリなどの不揮発性メモリを挿入するスロットを備えているものもある。
主なプログラム電卓
- テキサス・インスツルメンツ (アメリカ)
- TI-58 C、TI-59、TI-66、TI-84 Plus シリーズ、TI-Nspireシリーズ、TI-89 シリーズ、TI-92シリーズ
- ヒューレット・パッカード (アメリカ)
- HP-10Cシリーズ、HP-25、HP-28 シリーズ、HP 35s、HP-41C、HP 48 シリーズ、HP-65、HP 49/50 シリーズ、HP 38G、HP Prime
- カシオ計算機 (日本)
- FX-502P、FX-602P、FX-603P、FX-702P、FX-850P、Casio 9850 シリーズ、Casio 9860 シリーズ、Casio ClassPad 300
- シャープ
- PC-1401、PC-1403
- Elektronika (ソ連・ロシアのブランド)
- B3-21、B3-34、MK-61、MK-52、MK-85、MK-90、MK-92、MK-98、MK-152、MK-161
-
TI-59
-
HP-41CX と周辺機器(磁気カードリーダ/ライタとサーマルプリンタ)
-
ソビエト連邦で開発されたプログラム電卓(写真はMK-52)は宇宙開発でも使われた。
-
HP 50g で数式エディタを使っているところ
-
Casio ClassPad 300 はタッチスクリーン式の電卓である。
-
Sinclair Cambridge Programmable
用途の例
あくまで代表的な例である。
- 科学・工学
- 財務・会計
- 教育 - プログラミングの基礎的な学習ツール。学生が計算を自動化する作業し、プログラミングの初歩を知る。
そのほか、数字や文字の表示だけでできる簡単なゲームに使われることもある。
プログラム電卓とポケットコンピュータの比較
1980年代、ハイエンドの電卓としてプログラム電卓とポケットコンピュータが存在しており、両者はよく似ている。例えば、どちらも非構造化BASICでプログラミング可能で、ほとんど例外なくQWERTY配列のキーボードを備えている。
しかし、次のような差異がある。
- BASIC搭載のプログラム電卓には電卓型のキーパッドもあり、関数電卓のように扱えるモードを備えている。
- ポケットコンピュータは、オプションで別のプログラミング言語を提供することが多い。例えばカシオ計算機のAI-1000(日本国外ではPB-2000)には、C、BASIC、Prolog(AI-1000のみ)、アセンブラ、(PB-2000のみ)LISPが提供されている[12]。
メーカーは両方の機器を製品として取り揃えていることが多かった。カシオは、当初は型番において、プログラム電卓に "fx-" をつけ[注 1]、ポケットコンピュータには "pb-" をつけていた(後にFX型番でもフルキーで電卓モードなしのポケコンも出している)。シャープはBASIC搭載の全ての製品をポケットコンピュータとして販売していた。
脚注
注釈
出典
- ^ “programmable calculator”. 2025年10月6日閲覧。"a type of calculator that allows users to write and execute customized programs to automate complex calculations"
- ^ a b “プログラム電卓 温故知新”. 2025年10月7日閲覧。
- ^ Programming Casio FX-7400G+
- ^ Programming Casio BASIC on the CFX-9850 Series
- ^ TI-Basic Developer
- ^ HP-28C/S in The Museum of HP Calculators
- ^ [1]
- ^ i.E. HP 9810A introduced 1971
- ^ HP-15C in The Museum of HP Calculators
- ^ HP-32s Users Manual Page 289ff
- ^ FX-502P and FA-1 on Voidware
- ^ Description of the PB-2000 in Caz Pocket Computers
- ^ FX-700P
- ^ FX-702P
関連項目
プログラム電卓
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/19 06:25 UTC 版)
詳細は「プログラム電卓」を参照 プログラミング可能な電卓のことである。 関数電卓を発展させたものとよく誤解されるが、世界最初の関数電卓 HP 9100A(1968年)はプログラミング可能であった。つまり、プログラミング可能な関数電卓の方が普通の関数電卓よりも先に誕生している。 それ以前、1963年の オリベッティ・プログラマ101 は事務用電卓であり、四則演算、平方根、絶対値、小数部の取り出し程度のことしかできなかった。しかし、プログラミングが可能であった。 金融電卓にもプログラミング可能なものもある。 プログラム関数電卓からさらにコンピュータ寄りに進化したものが、ポケットコンピュータである。
※この「プログラム電卓」の解説は、「電卓」の解説の一部です。
「プログラム電卓」を含む「電卓」の記事については、「電卓」の概要を参照ください。
- プログラム電卓のページへのリンク