梅尔的故事:一位真正的程序员
来源: users.cs.utah.edu — 1983-05-21
概述
这是 Ed Nather 于 1983 年 5 月 21 日发在 USENET 上的经典短文,讲的是 Royal McBee 公司里一位叫梅尔(Mel)的程序员。梅尔用十六进制机器码在鼓存储器的 RPC-4000 上写程序,蔑视编译器与优化汇编器,亲手为每条指令安排鼓上的落点,甚至利用指令地址自增溢出、让进位改变操作码,写出一个没有判断语句却能正确退出的循环。当销售部门要求他加上「让客户赢」的作弊开关时,他故意把测试条件写反,让程序在被打开开关时反而每次都赢,并坚称这是自己无法控制的道德潜意识所为。
核心要点
- 梅尔对编译器的态度是那句名言:「如果一个程序不能改写自己的代码,那它还有什么用?」
- 他从不写延时循环,而是把指令恰好放在读头刚过去的位置,让鼓多转一整圈来产生延迟,并把这种最坏位置称作「最劣位置」。
- 因为自己知道每个操作码的数值、又亲手分配鼓地址,他写的每条指令都可以同时被当作一个数值常量使用,代价是别人很难改他的代码。
- 作者曾发现一个没有判断语句的循环,花了两周才明白:数据被放在内存顶端,地址自增溢出后进位把操作码变成了跳转指令。
- 他最终告诉老板「我找不到那段测试」,让那台作弊的黑杰克程序保留原样。
金句
我不太愿意去动手改一位真正程序员的代码。
👍 0
👎 0
← 返回 Lobsters 首页