グラフ電卓
グラフ電卓（グラフでんたく）もしくはグラフィック電卓（グラフィックでんたく）は、グラフの描画、連立方程式の計算、変数を用いた演算ができる電卓である。グラフ関数電卓ともいう。ポピュラーなグラフ電卓はプログラミング可能で、ユーザが科学技術、教育向けにカスタマイズしたプログラムを作ることができる。グラフ電卓は大きなディスプレイを持ち、複数行のテキストや計算を表示できるのが一般的である。
歴史
カシオは最初の商用グラフ電卓、fx-7000Gを1985年に発売した。カシオの製品には、機能を簡単に呼び出せるアイコンメニュー (1994, FX-7700GE以降)、多色グラフ (1995, CFX-9800G)、SDカードによるメモリ拡張 (FX-9860SD)、教科書風の入力出力 (2009, FX-9750GII & 9860GII)、バックライト (2009, FX-9860 Slim & GII), フルカラー高解像度バックライトディスプレイ (2010, FX-CG10/CG20 PRIZM)などの新機能が盛り込まれた。
シャープは最初のグラフ電卓、EL-5200を1986年に発売した。シャープの製品には、タッチスクリーン(EL-9600シリーズ)、数式エディタ (教科書風の入力) (1992年発売のEL-9300以降？)、リバーシブルキーボード (一方は入門者向けの基本関数、もう一方は専門家向けの追加関数) (EL-9900)などの新機能が盛り込まれた。
ヒューレット・パッカードはHP-28Cでそれに続いた。 HP-28S (1988), HP 48SX (1990), HP 48S (1991)他、多くのモデルが発売された。 HP 50g (2006) は数式処理システム (CAS)を備え、代数式を解析的に扱うことができた。他にない強力なCAS計算機は、2001年のカシオペア A-10、A-11のようなMaple V代数エンジンを実行するスタイラス式PDAを一掃した。 HP 28 シリーズ から HP 48 シリーズ は主にプロの科学・工学市場向け、HP 38G と HP 39/40 シリーズ は高校大学教育市場向け、HP 49/50 シリーズ は教育用からプロ向けまですべての需要に応えた。HPのグラフ電卓は逆ポーランド記法 (RPN) / 逆ポーランドLisp (RPL)でよく知られているが、HP 49G からは一般的な入力方法（アルジェブレイク入力：ALG）も導入した。
テキサス・インスツルメンツは1990年からグラフ電卓を発売しており、一番古いものはTI-81である。より新しい計算機には大容量のメモリ、速いプロセッサ、TI-82, TI-83, TI-84 PlusシリーズのようなUSB接続機能が追加されている。他のモデルには、10～14歳の生徒向けに設計されたTI-80、TI-73がある。他のグラフ電卓は微積分向けに設計されているTI-85, TI-86, TI-89, TI-92シリーズ (TI-92、TI-92 Plus、 Voyage 200)。CASは TI-89, TI-Nspire CAS, TI-92 シリーズで導入された。テキサス・インスツルメンツの計算機は教育市場を主なターゲットとしているが、一般に広く利用可能である。
数式処理システム
いくつかのグラフ電卓は、記号的な結果を出すことのできる数式処理システム (CAS) を備えている。これは代数式を扱い、因数分解、展開、簡単化などの操作を行える。またこれにより、数値的な近似のない正しい答えを出すことができる。数式処理システムを持つ計算機は 記号またはCAS 計算機と呼ばれる。 CAS計算機には HP 50g, TI-Nspire CAS, TI-89,Casio ClassPadシリーズなどがある。
研究室用途
多くのグラフ電卓が、温度計、pH計、気象装置、音量計、露出計、加速度計、その他のセンサー電子機器と接続でき、データロガーとして使ったり、WiFiやその他の通信モジュールのように監視、ポーリング、教授とのやり取りに利用できる。研究室の学生は、このような機器を通じて統計学や応用数学の学習を深めることができる。また後述のように、グラフ電卓のプログラミング機能は、PCが近くにない時に開発者、大学教授、学生がラピッドプロトタイピングのために使用することがある。
ゲーム
グラフ電卓はプログラムが容易なため、適度な大きさの本体と利用者の多いプラットフォームを備えたゲーム機として使われることが多い。携帯ゲーム機の価格が同じくらいまで下がっているとはいえ、グラフ電卓は数学的なゲームを作るのに良い機能を提供する。しかし、公表されているデータシートやプログラミング言語を超えた能力のためファームウェア改造も伴うようなサードパーティー製のソフト開発は、本来ターゲットとする高校や大学でのテストでの不正な使用をあおるとして、製造者と教育関係者の間で争点となった。近年では、学生や研究者はコンピュータ支援数学ソフトを学習だけでなく実験にも利用するようになっている。
画面表示
グラフ電卓の一部はカラー出力やアニメーション、インタラクティブなグラフ描画(2D,3D)、代数定理のアニメーション、グラフや描画を含む文書の作成などが可能である。テキサス・インスツルメンツなどの製造元はコンピュータ上でグラフ電卓をエミュレートしたり操作するソフトウェアを提供している。
プログラミング
ほとんどのグラフ電卓は、複雑で頻繁に使用される一連の計算を自動化するために、ユーザーの手で自らプログラムを入力・実行できる。
電卓本体へのプログラムの入力には、電卓のデフォルト機能として内蔵されている全画面テキストエディタやプログラミングツール、あるいはその他の追加ツールが使用される。QWERTYキーボードを本体に搭載している機種や、一般的なPC用のものに似た外部キーボードを接続可能な機種も存在する。
また、実際のプログラミングをPC上で行い、その後電卓付属のPCリンクケーブルやIrDA通信、あるいはメモリーカードで電卓へ転送することもある。この場合、設定可能なテキストエディタや16進エディタ、そして後述する各種言語の実装に特化したプログラミングツールを利用して開発できるというメリットがある。HPGCCやTIGCCなどのような、グラフ電卓専用のPC上開発ツールも存在する。
初期の電卓は磁気カード等にプログラムを保存した。メモリ関連技術の進歩により、電卓に搭載できるメモリ容量が増加し、電卓内蔵のストレージをプログラムの保存場所にする機種も登場した。より新しい電卓の一部ではメモリーカードも使用できる。
グラフ電卓は、テキストで書かれたプログラムの要素を、短い数値トークンに置き換える。多くのグラフ電卓はPCとよく似た動作をし、アスキーコードから派生した7ビット、8ビット、9ビットのキャラクターセットを使ったり、UTF-8やUnicodeを使うこともある。Windowsの文字コード表に類似するツールが搭載される場合もある。
グラフ電卓に搭載されるプログラミング言語は、キーストロークマクロ言語（キーを押した順序を再生する言語）やBASICに似ていることが多い。機種によっては一般的なプログラミング言語やその方言が搭載されていることもある。またRPLのように、メーカー独自の言語を搭載している機種もある。加えて一部の機種では、電卓をハックすることで、メーカーがサポートしていない言語が実行できる場合がある。プログラム内では、電卓に内蔵された数学計算機能、ビット操作、基数、条件分岐命令、入出力関数、グラフィックス関数などの機能を利用できる。機種によっては、文字列操作関数やサウンド出力機能も利用できる場合がある。
一部のグラフ電卓はアセンブリ言語と機械語でのプログラミングをサポートしている。エクスプロイト（ハック技の一種）を使ったときのみ可能となる機種も存在する。電卓のメインプロセッサとして提供されているチップには、TMS9900、SH-3、Z80、ARMアーキテクチャ、68000などが挙げられる。これらの多くは、用途に応じてある程度改変がなされている。一部のメーカーはグラフ電卓のアセンブリ言語を資料化しておらず、アセンブリ言語でのプログラミングを妨害することさえある。
グラフ電卓のプログラミング言語は、PCが近くにないときに開発者、大学教授、学生によってラピッドプロトタイピングのために使用されることがある。
一部のグラフ電卓はOSを搭載している。電卓のOSとして、電卓メーカーによる独自OS、DOS、Windows CE、Windows NT 4.0 Embedded、Linuxなどがある。一部のユーザーは、TI-89やTI-92シリーズやTI-Nspireシリーズなどに、CP/M-68Kの機能削減版やLinuxなどのOSをインストールすることに成功している。独自にグラフ電卓用のOSを開発・公開しているユーザーも存在する。
ほとんどのグラフ電卓はPC上のMicrosoft Excelとファイル変換で連携できる内蔵スプレッドシートを搭載している。2018年現在まで、電卓側のスプレッドシートでマクロやその他の自動化機能を持つ電卓は存在していない。一部の機種では、リスト・行列などのデータ構造を電卓のプログラミング言語で操作し、マクロとスクリプトが利用可能なスプレッドシートと同等の機能を実現できる。