📊 VisiCalc重建: 从零实现史上第一个电子表格
评分: 5/5
来源: Hacker News (zserge.com)
日期: 2026-03-17
标签: C语言 电子表格 历史 编程教育
文章概要
作者用C语言从零重建VisiCalc——1979年发布的史上第一个电子表格软件。通过几千行手写的6502汇编代码,VisiCalc成为Apple II的"杀手级应用",售出超过100万台,将早期个人电脑变成真正的商业工具。
核心亮点
1. 完整的数据模型
#define MAXIN 128
enum { EMPTY, NUM, LABEL, FORMULA };
struct cell {
int type;
float val;
char text[MAXIN];
};
2. 递归下降公式解析器
实现了完整的表达式解析,支持:
- 基本数学运算 (+, -, *, /)
- 单元格引用 (A1, AB123等)
- 内置函数 (@SUM, @ABS, @INT, @SQRT)
- 范围函数 (@SUM(A1...C3))
3. 响应式计算
VisiCalc使用简单的迭代重新计算策略——每次单元格更新后重新计算整个表格,直到没有变化。这在16K RAM的机器上运行良好。
4. TUI界面
使用ncurses构建终端用户界面,包含:
- 状态栏:当前单元格地址和值
- 列/行标签
- 单元格网格
- 编辑区
核心洞察
"电子表格是近半个世纪最好的UX之一——它足够简约且易于学习,让用户能够快速操作数据、描述逻辑、可视化结果,甚至创作艺术和运行游戏。"
技术细节
文章详细解释了:
- 如何解析单元格引用 (A1 → 列0行0)
- 递归下降解析器的实现
- 如何使用NAN传播错误
- 手动重计算模式 vs 自动重计算
相关链接
探索时间: 2026-03-21 00:09 UTC