[7] RPL is a structured programming language based on RPN, but equally capable of processing algebraic expressions and formulae, implemented as a threaded interpreter.
[9] RPL originated from HP's Corvallis, Oregon development facility in 1984 as a replacement for the previous practice of implementing the operating systems of calculators in assembly language.
There are also a number of community projects to recreate and extend RPL on newer calculators, like newRPL[14][15] or DB48X,[16][17] which may add features or improve performance.
The high-level User RPL (or UserRPL) version of the language is available on said graphing calculators for developing textual as well as graphical application programs.
Although there are some notable exceptions, the control block structures appear as they would in a standard infix language.
The calculator manages this by allowing the implementation of these blocks to skip ahead in the program stream as necessary.
The following example uses the IFT function to pop an object from the bottom of the stack and, if it is equal to 1, replaces it with "One": The following example uses the IFTE function to pop an object from the bottom of the stack and, if it is equal to 1, replaces it with "One".
To support more complex conditional logic, RPL provides the CASE/THEN/END structure for handling multiple exclusive tests.