プログラム電卓
[Wikipedia|▼Menu]

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

1990年代初め以降、プログラム電卓はグラフ電卓へと進化している。ドットマトリクス方式の液晶ディスプレイが安価に大量生産できるようになるまでは、プログラム電卓のディスプレイ部分は1行の数字または英数字しか表示できないものだった。目次

1 プログラミング

2 プログラミング言語

3 プログラムのセーブ手段

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

5 主なプログラム電卓

6 脚注

6.1 注釈

6.2 出典


7 関連項目

プログラミング

プログラム電卓は、プログラムを書いて格納することができ、難しい問題を解いたり、複雑な手続きを自動化したりできる。

元々は各電卓独自のコマンド言語によるプログラミングだったが、ハッカーが電卓の主要インタフェースを迂回する方法を発見してアセンブリ言語でプログラムを書くようになり、テキサス・インスツルメンツを代表とする電卓メーカーがネイティブモードのプログラミングをサポートしはじめた。まず、そのようなコードを利用可能にするフックを公開し、後に通常のユーザインタフェースで直接そのようなプログラムを扱えるよう機能を整えていった。

電卓向けのプログラムはインターネット上に多数存在する。そういったプログラムをパーソナルコンピュータにダウンロードし、専用のリンクケーブルや赤外線リンクやメモリカード経由で電卓にアップロードすることができる。また、エミュレータを使えばPC上で直接実行できる。

それを利用してプログラム電卓向けに他のプログラミング言語インタプリタコンパイラのプログラムを書くことも可能である。例えば、TI-83やTI-84には BBC Micro のBASICが既に移植されており、他にもFORTRANAWKPascalREXXPerlCommon LispPythontclUNIX上の各種シェルなどの移植が議論されている。

プログラム電卓向けのソフトウェアとしては、数学科学に関連した問題を解くものや、ゲーム、デモなどがある。その多くは一般ユーザーが作り、フリーウェアオープンソースとして公開しているが、教育および科学技術計算市場向けの有償ソフトウェアも存在する。

グラフ電卓は表示画面が大きいため、スクロールしなくてもソースコードを複数行表示でき、単なるプログラム電卓よりもプログラミングが容易である。
プログラミング言語
キーストローク方式
初期のプログラミング電卓は、非常に単純なプログラミング言語を採用しており、実際にキーを押下する順序を記録する方式や複数のキーストロークを
バイトコードのようなものに変換して記録する方式がある。条件分岐と間接アドレッシングが可能であれば、このような方式でもチューリング完全なプログラミングが可能である。キーストローク方式でチューリング完全なプログラム電卓としては、カシオFX-602PシリーズHP-41、TI-59(英語版) などがある。キーストローク方式のプログラム電卓は2012年現在も販売されており、HP 35s、カシオのfx-5800Pなどがある。
BASIC
BASICは、デスクトップコンピュータやポケットコンピュータで広く採用されたプログラミング言語である。シャープカシオTIなどがプログラム電卓やポケットコンピュータのプログラミング言語として採用した。これらのBASICの方言はキーストローク方式の長所も取り入れた電卓向けに最適化されたものである。したがって、一般的なBASICとの共通点は少ない[1][2][3]
RPL
RPLヒューレット・パッカードがプログラム電卓向けに採用した、逆ポーランド記法順などを特徴とする言語である。1987年リリースのHP-28Cから導入した[4]
アセンブリ言語
初期のプログラム電卓では機械語を直接使うことはできなかったが、ハッカーがインタプリタのインタフェースを迂回する方法を発見し、アセンブリ言語で直接プログラミングできるようになった。最初にこの技法が使われるようになったのは 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、AWKC言語COBOLREXXPerlPythonTclPascalDelphi、各種シェル(DOS、OS/2のバッチやWindowsのシェル、Unix系のシェルなどがある。
プログラムのセーブ手段

プログラム電卓の重要な機能の1つとして、プログラムを永続的にセーブしておける機能がある。この機能がないと、電池を入れ替えたときなどにプログラムが消えてしまう。プログラム電卓内に電池を取り外しても内容が消えないメモリを搭載する方式と別の周辺機器を接続する方式がある。複数のセーブ手段を備える場合もある。
磁気カードリーダ/ライタ
初期のプログラム電卓はオプションの永続的セーブ手段として
磁気カードリーダを採用していた[5]。入力したプログラムを細長い磁気カードにセーブする。磁気カードとそのリーダは小型で持ち運びが容易である。しかし、一般に非常に高価だった。磁気カードを採用していた最後の機種としてHP-41CとTI-59(英語版)がある。
バッテリーバックアップ式メモリ
主電源を切ってもメモリの内容が消えないようバッテリーバックアップを行う方式で、HPが最初に採用し continuous memory と名付けた。これは電池交換の際でもプログラムが失われないようになっている[6]。なお、メモリ容量が増えてくると、完全なバッテリーバックアップは困難になってきた。そのため、電池交換にかける時間を2分以内などと制限する方式[7]、電池を2つ搭載して一度に1つしか交換できないとする方式などが登場した。
カセットテープ
コンパクトカセットは磁気カードよりも安価で単純なセーブ手段である。例えばカシオは FA-1 というインタフェースモジュールを発売し、プログラム電卓と一般的なカセットデッキを接続可能とした。周波数偏移変調でデジタルデータを音響信号に変換して録音する[8]シャープHPは、電卓に直接接続可能なマイクロカセットを使った専用レコーダーを発売した。こちらの方が信頼性が高く便利だったが、カシオの方式よりも高価だった。
フロッピーディスク
フロッピーディスクは適度に安価であり取扱いもし易く便利なセーブ手段である。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:32 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef