• 1984

Software Description

In the late 1980s, HP was developing a new series of extremely powerful calculators that needed a new programming language. For earlier calculators, memory was very expensive and bulky and the challenge for firmware writers was to pack a set of scientific functions into very little space. They used machine language exclusively and carefully refined and re-refined their algorithms until they fit. However, as memory became denser and less expensive, the major challenge shifted away from saving space to implementing and testing the many sophisticated functions that newer calculators contained. HP examined existing languages such as BASIC but found them to be unsuitable both because of their limitations and their resource demands which were still rather high for pocket devices. Instead, HP combined elements of RPN, Lisp and Forth and came up with a language called Reverse Polish Lisp or RPL. From Lisp, RPL inherited concepts such as atomic and composite objects, temporary (lambda) variables, garbage collection, the ability to pass unevaluated objects as arguments etc. and from Forth, RPL inherited threaded execution and RPN notation with an unlimited stack.