知識ベース

FOCAL(Hewlett-Packard)

FOCAL41電卓言語 )は、Hewlett-PackardのHP-41の拡張可能な科学/工学計算機のプログラムに使用される言語です。

1980年代の他のほとんどの電卓プログラミング言語と同様に、FOCALプログラムは命令の線形リストです。各命令(またはステップ )は、キー(またはキーの組み合わせ)を押すことにほぼ対応しているため、ユーザーが計算機で自分で計算を実行する場合の操作に対応しています。このパラダイムにより、FOCALプログラミングは初心者にとって比較的簡単になりましたが、プログラムのメンテナンスは悪夢のようです。それに加えて、GOTO命令の使用(データレジスタ(「GTO IND」)の値に基づくプログラムステップへの移動を含む)は、 計算gotoとして知られる手法であり、簡単にスパゲッティコードにつながりました。

プログラムのステップには1から始まる番号が付けられますが、この番号には本質的な意味はなく、プログラムの途中で新しい命令が追加または削除されると変更される可能性があります。特別な命令LBLはラベルを作成するために使用されます。ラベルは、GTO(無条件go-to)またはXEQ(実行)命令のターゲットとして、ユーザーがプログラムを呼び出すために、またはプログラム自体によって使用できます。

これは非常に簡単なFOCALプログラムです。

001 LBL "DOUBLE" 002 2 003 * 004 END
  • LBL「DOUBLE」命令はラベルであり、ユーザーがXEQ「DOUBLE」によってプログラムを起動できることを示します。 「DOUBLE」という名前は、ユーザーのキーボードの任意のキーに割り当てることもでき、電卓に新しい機能を効果的に追加できます。
  • 次の2つのステップは、関数の動作に対応し、主にXレジスタに2を掛けます(HP-41は逆ポーランド記法を使用します)。
  • END命令は、プログラムの終了を示します。

他の多くのプログラム可能な計算機とは異なり、各FOCALステップは1バイト以上としてメモリに保存できます。計算機のメモリは2233バイトのプログラムコードを保持できますが、報告されたプログラムは実際にこのステップ数に達しませんでした。