HP 39/40シリーズは、ヒューレット・パッカード社製のグラフ電卓で、 HP 38Gの後継機種です。このシリーズは6機種からなり、いずれも代数入力モードを備え、数値解析と様々なレベルの記号計算を実行できます。このシリーズの電卓はすべて高校生を対象としており、ケーブルまたは赤外線経由でAPLETやEレッスンをダウンロードできる機能が特徴です。これらは複雑さの異なるプログラムで、一般的には教室で数学の学習を促進するために、概念をグラフや数値で探究することを目的としています。
HP 39g(F1906A)は2000年に発売されました。
基本的な特徴:
HP 40g(F1907A)は、HP 39gと同時期に2000年に発売されました。HP 40gのオペレーティングシステムはHP 39gと同一です。起動時に検出されたハードウェアの違いが、ソフトウェア機能の違いを引き起こします。
ハードウェアはHP 49G / 39Gシリーズと同一です (ゴム製キーボード付き)。39g と対照的に、HP 49Gと同じコンピュータ代数システム(CAS) 、HP CASを統合しています。上位機種とは異なり、HP 40g には設定/誤設定するフラグがないため、単純な数学分析に適した「扱いやすい」電卓となっています。さらに、HP 40g には赤外線接続がなく、変数は 27 個に制限されています。リストベースのソルバーやその他の制約により、この使いやすい電卓は高度な用途にはあまり適していません。HP 40g は、ACTを含む多くの標準テストでの使用が許可されていません。ただし、2019 年現在、SATでは使用が許可されています。 [ 1 ]
基本的な特徴:

HP 39g+(F2224A)は2003年9月に発売されました。
基本的な特徴:
注:このモデルではARMプロセッサが使用されていますが、オペレーティングシステムは39Gとほぼ同じで、Saturnチップは39Gよりも高速にARM上でエミュレートされています。HP 40GのオペレーティングシステムのCASコンポーネントは、起動時に非表示になるのではなく、完全に削除されたようです。

HP 39gs(F2223A)は2006年6月に発売されました。
基本的な特徴:
注:このモデルではARMプロセッサが使用されていますが、オペレーティングシステムは39Gのものとほぼ同じです。ただし、サターンチップはARM上で39Gよりも高速にエミュレートされています。

HP 40gs (F2225A)は 2006年半ばに発売されました。
基本的な特徴:

HP 39gII (NW249AA) は 2011 年 10 月に発売されました。これは、 ARM926EJ-Sコアを搭載した 80 MHz Freescale (旧SigmaTel ) STMP3770プロセッサを中心に構築されており、256 KB RAM と 128 MB フラッシュ メモリを備えています (そのうち約 240 KB RAM と 80〜105 MB フラッシュがユーザーに利用可能です)。高解像度のモノクロ グレースケール LCD は 256×128ピクセルを提供します。接続はUSB-OTG Micro-ABコネクタを介して提供されます。電卓で内部的に使用される BCD 数学ライブラリは、エミュレータで実行されるSystem RPLコードではなく、ネイティブに実行されるプラットフォーム非依存のCコードで書き直されました。電卓でサポートされているPascalライクなプログラミング言語は、 HP PrimeのHP PPLの前身です。この電卓は、128 レベルのスタック[ 2 ]とUnicode ( UTF-16 )をサポートする最初の電卓です。キーのラベルがわずかに異なる2つのバリアントが存在する。[ 3 ] a b/c
CASを搭載できるほど強力な電卓の改良版である「HP 39gII+」の開発はほぼ完了していたが、基盤となるプロセッサがフリースケール社によって放棄されたため、プロジェクトも中止となった。[ 4 ] [ 5 ]その代わりに、電卓のコンセプトが再び見直され、仕様がさらに改良された(カラータッチスクリーン、さらに強力なプロセッサなど)。そして最終的に、 2013年にHP Primeが発売された。
HP
39GII はメモリが非常に限られており、HP39G+/HP40G で繰り返し発生する問題は、スタック上に数千個のオブジェクトがあることが原因でメモリ不足の状態になるという顧客からの苦情でした。そのため、39GII を作成する際には、入力/出力用に 128 スタック レベルをあらかじめ割り当てました。これは理にかなっていました。 Primeが登場し、RPNを追加した際も、同じ128スタック構造を維持しました(より簡単かつ迅速に処理するため)。当時、RPNはプログラミングシステムではなく入門システムとして設計されていたため、128スタックレベルで十分だと考えていました。