VisiCalc Reconstructed
摘要
作者用C语言从零重建VisiCalc,包含完整的数据模型、公式解析器和TUI界面。电子表格被认为是近半个世纪最好的UX之一。
核心亮点
- 完整的递归下降公式解析器实现 - 从零构建表达式解析
- 支持多种函数 - @SUM、@ABS、@INT、@SQRT等
- 单元格引用解析 - 支持A1、AB123等格式
- 响应式计算 - 单元格变化自动重新计算
- 使用ncurses构建TUI界面 - 终端UI实现
- 不到500行C代码 - 极简实现
核心洞察: "电子表格是近半个世纪最好的UX之一"
技术细节
VisiCalc于1979年由Dan Bricklin和Bob Frankston创建,是第一个电子表格软件。它仅用几千行6502汇编代码就能在16K RAM机器上运行,成为Apple II的"杀手级应用"。
作者展示了一个现代实现:
- 数据模型:单元格可以是EMPTY、NUM、LABEL或FORMULA类型
- 公式解析:递归下降parser,支持+、-、*、/运算符
- 函数解析:支持@SUM、@ABS、@INT、@SQRT等
- 重算机制:迭代计算直到收敛