Brussels / 4 & 5 February 2023


Reviving Reverse Polish Lisp

Building an open-source HP48-like calculator

The DB48X project aims at recreating an open-source implementation of Reverse Polish Lisp on modern calculator platforms

In 1986, Hewlett-Packard introduced the HP28C, and with it, a new programming language, "Reverse Polish Lisp" (RPL). This was arguably one of the most powerful programming languages ever introduced on a pocket calculator, and it continued well into the 2000's, with the HP50 series. RPL was initially designed for a machine with a 4-bit CPU and 2K of memory, soon upgraded to 32K. Some of the more recent calculators from Hewlett-Packard used ARM CPUs, but then only to emulate the original 4-bit CPU and run the older 4-bit ROM code.

Today, several ARM-based calculator platforms support open-source firmware. This opens the possibility to revive RPL in a more modern environment. DB48X is an attempt at recreating RPL from scratch to run on such platforms. Even today, these machines remain minimalistic, with as little as 60K of free memory and less than 1MB of usable Flash storage, for example. This talk will present a design and implementation of a basic RPL runtime written in C++, but replacing the standard C++ object model with a compact, garbage-collected, byte-addressable representation of RPL objects. We will also dive into what RPL is, why it truly deserves the name "Lisp", and why it remains remarkably different from the Lisp most of us are familiar with. We will discuss some of the implemented and planned features for that new iteration of RPL, including built-in on-line help, taking advantage of high-resolution graphics, or making it as efficient as possible in "direct" (non-programmed) mode.


Photo of Christophe de Dinechin Christophe de Dinechin