xrpn
概述
XRPN 是在 X Window 系统(X11)环境中运行的开源工程计算器程序,基于逆波兰表示法(Reverse Polish Notation,RPN)进行计算。其特点是将 HP(Hewlett-Packard)经典 RPN 计算器(尤其是 HP-11C、HP-15C 系列)的操作手感移植到软件中,并追求以键盘输入而非鼠标点击为中心的快速计算流程。它是一款可在 Unix、Linux 系列桌面上轻量使用的科学、工程计算器,长期以来通过 SourceForge 发布源代码和二进制文件。
主要内容
什么是逆波兰表示法(RPN)
RPN 是将运算符写在操作数之后的后缀(postfix)表示法。例如,将 3 + 4 写成 RPN 就是 3 4 +,而 (3 + 4) × 5 则写成 3 4 + 5 ×。计算器将值压入栈(stack)中,遇到运算符时弹出栈顶的两个值进行计算,再将结果重新 push。这种方式不需要括号,可以直观地查看中间结果,并且输入顺序就是计算顺序。HP 计算器用户使用 Enter 键确认操作数的独特输入方式。
XRPN 的特点
- 4 层栈结构:提供由 X、Y、Z、T 寄存器组成的经典 HP 方式栈,并支持
SWAP、Roll Down、Roll Up、Last X等栈操作键。 - 科学、工程函数:除四则运算外,还提供平方根、乘方、倒数、常用/自然对数、指数、三角函数与反三角函数、阶乘、百分比计算等功能。
- 内存寄存器:设有多个可存储、调用数值的寄存器,便于重复计算和复用常数。
- 进制转换:支持二进制、八进制、十进制、十六进制模式,方便程序员进行位运算或进制转换。
- 按键编程:提供将一系列按键输入保存为程序并重复执行的功能,延续了 HP 计算器的 keystroke programming 传统。
- 显示设置:可调整小数位数(precision)和显示格式,从而控制工程计算的精度。
- 轻量 GUI:除 X11 库外没有大型依赖,因此在旧硬件或最小安装环境中也能轻松运行。
安装与运行
源代码发行版遵循典型的 Unix 构建流程。解压后依次执行 ./configure、make、make install 进行构建,运行可执行文件 xrpn 即可打开计算器窗口。需要 X11 开发头文件(如 libx11-dev 等)和编译器;除 Linux 外,也有在 BSD、Solaris 等传统 Unix 环境中构建的案例。在 macOS 上,可通过 XQuartz 作为 X11 应用程序运行。
应用领域
1. 工程、科学计算:重复的单位换算、对数、指数运算、电路设计计算等。
2. 程序员计算:需要进制转换和位级思维的任务。
3. RPN 学习:以可视化方式学习基于栈的计算原理的教学工具。
4. 旧有环境:难以安装大型现代计算器应用的旧 X11 桌面。
类似软件
X11 标准发行版中的 xcalc、GNOME 系列的 galculator、具备强大公式处理能力的 Qalculate!、Emacs 的 calc、基于终端的 RPN 计算器 dc、orpie,以及 HP 计算器模拟器(Nonpareil、Free42 等)是与 XRPN 相比较的代表性替代方案。
最新动态
截至 2024-2025 年,XRPN 处于成熟的传统 X11 应用程序的典型位置。它仍是偏维护性质的项目,而非增加功能;主要 Linux 发行版是否提供软件包常常不一致,因此用户自行从源码构建的情况很常见。另一方面,在 Wayland 会话中通过 XWayland 运行的方式已变得普遍,以容器、Flatpak 形式保存经典 X11 应用的努力也在继续。
RPN 计算文化本身反而正在被重新审视。随着 HP 在 2023 年限量重新推出 HP-15C Collector's Edition,RPN 爱好者社区再次活跃起来;在 Web 浏览器中运行的基于 WebAssembly 的 RPN 计算器、移动应用,以及用 Rust、TypeScript 重新实现的开源 RPN 引擎等也相继出现。此外,随着人们对以键盘为中心的工作流和离线工具的兴趣增加,能够本地即时计算、而非依赖云端公式服务的轻量桌面计算器的价值再次被提及。像 XRPN 这样的经典工具,在这一趋势中被引为“经过验证的操作手感”的参考实现。
相关主题
- [[逆波兰表示法]]
- [[HP-15C]]
- [[计算器]]
- [[X Window 系统]]
- [[开源软件]]
- [[HP 计算器模拟器]]