RPL (プログラミング言語)
START/NEXT構造は、開始インデックスから終了インデックスまでの単純なループをサポートする。FOR/NEXT構造と違って、インデックス変数(ループ変数)はプログラムから利用できない。しかし、インデックス変数は内部的に存在する。NEXTコマンドはインデックス変数を+1するだけである。START/NEXT構造の文法は以下のようになる。
RPLにはUser RPLとSystem RPLの2種類があり、一般的にRPLと言えば、User RPLを指す。
RPLの中でもシステムの低レベルから中レベルまでを扱うSystem RPL(もしくはSysRPL)言語は、OSを実装する言語の一部として前述の機種だけでなくいくつかの初期のHP社電卓で使われた。HP 48 シリーズの場合、外部ツールを使わないとユーザーはSystem RPLを使用できない。しかし、HP 49/50 シリーズの場合、SysRPLを使うための内蔵コンパイラが搭載されている。誤りのあるSysRPLコードを実行すると深刻なクラッシュを引き起こす可能性がある。
RPLの一種である高レベル言語のUser RPL(もしくはUserRPL)は、グラフィックスアプリケーションプログラムだけでなくテキスト型のプログラムを開発するために前述の電卓で利用できる。全てのUserRPLプログラムは内部的にはSysRPLで実装されている。しかし、利用可能なSysRPLコマンドの中の安全なサブセットだけを使う。UserRPLのコマンドはエラーチェックを行うので安全ではあるが、そのエラーチェックによってUserRPLプログラムはSysRPLプログラムよりも非常に動作が遅くなっている。
UserRPLコマンドのSYSEVALは、アドレスで指定された無名のオペレーティングシステムオブジェクトを評価・実行する。
CASE/THEN/END構造を用いて、複数の条件から排他的に1つの条件を選ぶ、より複雑な条件論理式を実行できる。CASE文の中の1つだけの選択肢が実行される。この構造の基本文法は以下のようになる。
以下のコードはCASE/THEN/END構造の使用方法の例である。スタックの底辺にある1文字を取得して、それに対応する文字列をそれと置き換える。対応する文字がない場合は"Unknown letter"で置き換える。
上記のコードは以下の入れ子になったIF/THEN/ELSE/END構造と完全に等価である。