今早醒来……惊讶地发现我的森海塞尔耳机仍然连接着我的新 MacBook Pro,iTunes 设置为随机播放蓝色音乐。请不要认为我屈服于那些卑鄙的植入广告诱惑,这种诱惑在这些吝啬的时代1 引诱了如此多的专栏作家和电影制作人,我不愿意给这些命名的产品定价,宣传它们的来源(亚马逊、eBay、Marple 等),或详细说明我从它们出色的性价比中获得的巨大乐趣。 仅需提及的是,整夜播放的潜意识专辑是 Broke, Black and Blue, Volume 1,售价 7.95 美元或 7.95 英镑。2 专辑标题(将 download 的含义延伸到 down-and-out load)也非常适合那些生活在冰岛、希腊、爱尔兰和其他经济体中的人,这些经济体正遭受银行家的慷慨资助消费者贪婪的影响。3
去年是我书香生涯喜忧参半的一年。 优秀的书籍不乏,但不幸的是,有太多个月因医疗原因被迫卧床不起,这有利于阅读而不是靠写作支付房租。 我还应该加上听书,因为当残酷的卡维尔护士命令“熄灯!熄灭所有吸烟材料!!”时,有声读物已被证明是一种福音。 我与 audible.com 有一项很棒的交易,每月可以从其无限的目录中免费下载两本。 我以容易上当的赌徒的意义使用“免费”这个词。 我确实支付了适度的保留费,这给了我每月选择两本定价高于固定订阅费的书籍的挑战,无论我是否喜欢它们。 当然,我在开玩笑。 昂贵的书名通常符合我的自然偏好。 我上个月无意中发现 audible.com 采用了一种非常友好的客户算法。 我不假思索地勾选了三个书名:a @ £x(免费);b @ £y(免费);c @ £z(购买)。 忽略 P=NP 争议,audible.com 的计算机立即发现 x > z > y,并修改了我的订单为:a @ £x(免费);b @ £y(购买);c @ £z(免费)。 我打算用更复杂的订单测试他们的算法,目标是 aleph-0 个书名,或者尽可能接近时间允许的范围。
顺便说一句,出现了一个新的元争议:Vinay Deolalikar 声称的 P=NP 证伪是否可以在多项式时间内被指数级增长的合格在线质疑者验证? 我们现在可以将通过外部群体博客证明添加到通常的波普尔怀疑对象列表中(通过归纳证明;通过重复断言证明;通过权威-非波普尔-的证明,...)。
因此,为了我的重听乐趣,我现在拥有八小时纳博科夫的短篇小说和 15 小时理查德·费曼在加州理工学院讲台上的现场演讲,经过数字修复,证明如果您恰好是来自布朗克斯的天才,那么努顿是牛顿可以接受的发音。
当旁白者缺乏公式且对符号不敏感时,数学物理有声读物存在缺点。 老粉丝可能还记得我在 Unix Review 的《魔鬼代言人》专栏中,将 soundo 引入作为 typo 的口语类比。 最近有声读物中令人恼火的有趣例子包括爱因斯坦的 相对论:狭义与广义理论。 它以浓重的日耳曼口音令人信服但完全不必要地叙述,但完全搞砸了所有公式。 带撇的坐标被发音为“x to the one”,而 t 的平方变成“t to the two”(快速停顿以思考爱因斯坦是否熟悉 1925 年音乐剧 No, No Nannette 中的“Tea for Two”?)。 对于外行听众来说不太明显的是约翰·波金霍恩的 量子理论:极简入门 令人愉悦的叙述中反复出现的 soundo。 希腊字母 nu (ν),频率的标准符号,发音为“vee”。 许多书,然后,定期游入我的视野。 肯然后根据可读性对它们进行排名,并将选择传递给我,这取决于我感知到的健康状况。 你可能知道,在品尝了卧床休养的乐趣后,我开始了永久的疗养。 这具有维柯式的循环韵味,让人想起懒惰、贫困的利物浦青年时代。 我会反驳我母亲在中午时分叫醒我的尝试,用沙哑的声音说“I'll gerra job termorra, mam。” (粗略翻译:“别担心,母亲,我计划在不久的将来找工作。”)。4
肯一直扣留的一本书,直到他觉得我可以承受冲击,结果证明是关于计算机历史上最糟糕的书。5 它苦于无情地设置在银行支票上发现的半清晰的 E13B 字体中(由此产生了表达“我们的底线不尽如人意。”)。 即使我的文档扫描仪也难以阅读 Taschen 版本的字体,该字体旨在用于机械而不是人眼。 其中一个原因是随机选择前景和背景颜色,打破了印刷清晰度的每一个公理。 然而,不可饶恕的罪过是,剑桥 EDSAC 根本没有被提及。 我不吝啬对康拉德·楚泽的充分爱国主义赞扬,但是……这个遗漏在去年十二月传到了我这里,当时我们听到了莫里斯·威尔克斯爵士去世的消息,他是 EDSAC 的 唯一缔造者。 (我为他写的讣告附在此处。)
回到我的专栏标题,我提供一首解释性的歌曲,这是我对莎士比亚模仿剧“罗密欧与朱丽叶”的自我模仿:6
两本书籍,同样庄重,
在 C++ 中我们设置场景,
比雅尼采取温和的道路
而斯特潘诺夫则严厉而刻薄。
(斯坦·凯利 © 环球音乐出版公司)
这两本书是
我将把这两本书分别称为 PPPC++ 和 EoP,作者分别称为 BS 和 AS/PM。 从第一眼看到书名和篇幅 就很明显,这两本书采用了不同的启蒙路径! PPPC++ 有 1,236 页;EoP 有 262 页。
一个有用但过于简单的类比是 EoP 作为正式 数学和 PPPC++ 作为非正式 数学。 在对 Proof and Other Dilemmas: Mathematics and Philosophy 的评论中,伊桑·艾金有趣地强调了这两个概念之间的区别:7
“与确定性 一样,证明 这个词用于两个不同的事物,值得明确区分。 基础是逻辑证明,以下称为 PROOF。 幸运的是,这已被现代逻辑完全形式化,因此我们可以完全清楚地了解它是什么:一系列陈述,每个陈述要么是(1)公理、定义或先前 PROOFed 的结果,要么是(2)通过列表上较早的陈述之一通过(纯粹形式化的)推理规则获得的陈述……正是这种 PROOF 概念的机械性和几乎与思维无关的特征证明了希尔伯特计划的希望(如果我们能称之为希望的话)。 此外,当我们受到野蛮人(即哲学家!)的攻击时,PROOF 是我们撤退的城堡。”
在这里,我们看到了“真正工作”的数学家对过度哲学化的普遍怀疑,这与实用的量子力学俏皮话相呼应:“闭嘴并继续计算。”
艾金继续宣称数学家的信条:简而言之,定理的小写 proof 表示一种信念,即在我们期刊中发现的不太正式的陈述序列背后,存在一个 PROOF,理论上可以为任何挑剔的怀疑者构建。
EoP 在编程基础的公理化方面做得非常出色。 我们从思想类别:实体、物种、属,一直到值、对象、过程和类型的累积定义(à la Backus-Naur)中被引导出来。 后面的章节涵盖了变换及其轨道、结合运算和线性排序,最后是复合对象。 由 Sean Parent 和 Bjarne Stroustrup 编写的附录(向我们保证他支持 AS/PM 的演绎方法)定义了 EoP 中使用的 C++ 子集,以便在公理化的骨架上添加肉,就像它那样。
当我们从 EoP 的 PROOFs 转向 PPPC++ 的 proofs 时,我们立即看到 BS 的目标受众更广泛,包括那些肯定会发现 EoP 令人望而生畏的抽象。 那么,有什么新鲜事吗? 自计算机编程作为世界课程中的重要学科出现以来,一直存在一个持续的挑战:教谁什么以及如何教? 多年来,我很荣幸结识了来自惊人多元化背景的成功程序员。 人们会认为扎实的数理逻辑基础是必不可少的(IF 和 THEN 是什么意思!),但许多有利可图的商业计算机项目都是通过创造性地 将现有模块与最少的计算机科学知识结合在一起的结果。
我认为 EoP 的市场是那些需要编写模块的人,以及许多具有必要抽象能力的数学家、工程师和科学家。 PPPC++ 并非没有其困难和具有挑战性的部分(C++ 确实 是一种复杂的语言),但是,我敢说,它很有趣,并且有很多历史逸闻。 我希望这篇简短的评论能指导您的选择。 我不可避免的建议是:两本都买。
问
1. 通常很难区分报纸社论和以相同字体并排放置的广告。 来自更诚实的期刊的让步是在纳米浓缩哥特字体中发出警告:“本文由微软资助。” 演员驾驶汽车、吸雪茄、穿衬衫或假装操作电脑通常是为了展示他们的良好品味和喜爱的品牌——除非,当然,情节需要设备故障,在这种情况下,所有标签都被删除以避免诉讼。 我在 20 世纪 60 年代遇到了一个公然的产品植入示例,当时我是 Eamonn Andrews TV 节目的常客。 当时在镜头前吸烟非常普遍,但埃蒙明确表示了他对吸烟的偏好:一箱 10 包的 Pl***rs 香烟在整个节目中都非常显眼。
2. 人们可以为苹果在英国采用单一汇率策略辩护,理由是算术简单。 我不知道类似的 1:1 兑换是否适用于津巴布韦 ZWD 美元或朝鲜 KPW 韩元。
3. 关于全球金融崩溃(2007 年 - ...)的蓬勃发展的文献继续指责通常的替罪羊。 参见迈克尔·刘易斯的 大空头;特里·伊格尔顿的 生命的意义——极简入门;约伯记;以及我即将出版的 花斑天鹅。 刘易斯提出的一个违反直觉的观点是,抵押贷款行业麻烦的最早迹象与早期贷款偿还问题(以及通过频繁的再抵押贷款造成的利息损失)有关,而不是随后的过度慷慨的次级贷款的拖欠潮。 经济学仍然是一门沉闷的科学,考虑到那些诺贝尔奖方程式在错误的人手中被证明毫无用处的人们的可怜面孔,经济学更是如此。 丹·艾瑞里的 怪诞行为学 进一步深入了解了形式博弈论在充斥着所有使用相同软件的轻信赌徒的市场中的局限性。
4. Speigl, F., Shaw, F., Kelly-Bootle, S. 1966. Lern Yerself Scouse—How to Talk Proper on Merseyside. 利物浦:Scouse Press。
5. Wurster, C. 2002. Computers—An Illustrated History. Taschen。
6. 可从 Apple 优秀的 iTunes 库中获得(只需一首歌的价格)。 搜索专辑 Some People Are On the Pitch—Songs from Football's Archives;斯坦·凯利的曲目:“罗密欧与朱丽叶”;“妻子们接受这个警告。” 我还要感谢伯恩斯坦/桑德海姆音乐剧 西区故事 的一些灵感。 我的歌有一个快乐的结局:一个平方的模仿剧,就像它那样,证明了数学上令人满意的等式,悲剧的平方 = 喜剧。
7. Akin, E. 2010. 评论:Proof and other dilemmas: mathematics and philosophy. The American Mathematical Monthly 117 (10).
喜欢还是讨厌? 让我们知道
(经剑桥计算机实验室环期刊 The Ring 第 XXVI 期,2011 年 1 月许可转载。)
我是有幸成为莫里斯·威尔克斯开创性天才的受益者的第一批三位剑桥数学毕业生之一,这不仅体现在启动 EDSAC,还体现在设计世界上第一个计算机科学研究生文凭。 事实上,早在 1953 年,计算机科学 这个术语尚未出现,该课程的名称相当晦涩难懂,被称为“数值分析与自动计算文凭”。
对数值分析的强调非常重要。 如今,许多计算机用户会接受他们的 PC 计算出的任何数字,而无需事先担心估计的误差。 我们配备了重型金属、多管勃朗斯维加计算器,经过培训,在运行程序(或当时称为 programme)之前,要意识到我们的总和在做什么——近距离。
任何讣告都无法捕捉到他的学生在他离世时感受到的震惊。 他的长寿似乎是不可侵犯的,因为他年复一年地如此积极地继续工作,比整整几代 EDSAC 校友都活得长。
也不容易公正地评价莫里斯·威尔克斯这个人。 他有一种讽刺、克制的幽默感,只能用英语来形容,尽管不够充分。 这在他的回忆录甚至在他的技术著作中都有体现。 幸运的是,它也存在于 EDSAC 团聚和周年庆典的视频中。 举一个例子:他讲述了一个在短时间内安排的早期 EDSAC 演示的故事。 选择用来让非技术部长级访客眼花缭乱的程序是一个随机数生成器,这意味着,当然,即使对于专家来说,判断其准确性和性能也远非易事。 来自慷慨的葡萄酒服务的额外保险。
随着岁月的流逝,EDSAC 校友的数量在世界上最好的校园和 IT 公司中成倍增加,莫里斯·威尔克斯出色地保持了与散居者的联系,他们是名副其实的计算机名人录。 在 70 年代后期,大约 30 名我们的人在硅谷欢迎他参加由 Unix 大师和 EDSAC 毕业生史蒂夫·伯恩组织的聚会。 这一传统通过其自己的杂志 The Ring 继续与剑桥计算机实验室环的成员定期聚会。
世界各地都在举杯送别。 比雅尼·斯特劳斯特鲁普(C++ 的发明者,也是威尔克斯的另一位著名门生)打断了他在德克萨斯 A&M 大学的讲座。 他的主题是“那时世界上有巨人行走!”
50 年代是数学实验室奇怪而英雄的时代,诱使巨大的、喜怒无常的野兽产生结果,而没有今天可用的任何娇生惯养的高级编程辅助工具。 主要的“快速”存储器是穿过水银罐的超声波。 我们只有 1 K (1,024) 个 18 位字;当时,这似乎已经足够了。 威尔克斯和他的优秀团队,包括大卫·惠勒和桑迪·道格拉斯,通过从 EDSAC 有限的硬件中挤出性能创造了奇迹,最显着的是发明了“浮动”子程序,由此,预先穿孔纸带上的复杂程序库可以拼接成我们自己的程序带。
斯坦·凯利-布特尔 (http://www.feniks.com/skb/; http://www.sarcheck.com),出生于英国利物浦,在 20 世纪 50 年代在剑桥大学学习纯数学,然后在开创性的 EDSAC I 上解决了计算机科学的杂质。 他的许多著作包括 The Devil's DP Dictionary (McGraw-Hill, 1981)、Understanding Unix (Sybex, 1994) 和最近的电子书 Computer Language—The Stan Kelly-Bootle Reader。 Software Development Magazine 已将他命名为首届斯坦·凯利-布特尔折衷技术奖的获得者,以表彰他在“技术和文学方面的终身成就”。 诺贝尔奖和图灵奖都没有获得如此珍贵的同名认可。 以他的民间艺名斯坦·凯利,他享受着作为歌手和词曲作者的并行职业生涯。 可以通过 [email protected] 联系到他。
© 2011 1542-7730/11/0200 $10.00
最初发表于 Queue vol. 9, no. 2—
在 数字图书馆 中评论本文
马特·戈德博尔特 - C++ 编译器中的优化
在向编译器提供更多信息方面需要权衡:它可能会使编译速度变慢。 链接时优化等技术可以为您提供两全其美的优势。 编译器中的优化不断改进,即将到来的间接调用和虚拟函数分派方面的改进可能很快就会带来更快的多态性。
乌兰·杰根巴耶夫、迈克尔·利普茨、汉内斯·佩耶 - 作为合资企业的垃圾回收
跨组件跟踪是解决跨组件边界的引用循环问题的一种方法。 只要组件可以形成具有跨 API 边界的非平凡所有权的任意对象图,就会出现此问题。 CCT 的增量版本在 V8 和 Blink 中实现,从而能够以安全的方式有效且高效地回收内存。
大卫·奇斯诺尔 - C 语言不是一种低级语言
在最近的 Meltdown 和 Spectre 漏洞之后,值得花一些时间来研究根本原因。 这两种漏洞都涉及处理器推测性地执行超出某种访问检查的指令,并允许攻击者通过侧信道观察结果。 导致这些漏洞以及其他几个漏洞的功能被添加进来,是为了让 C 程序员继续相信他们正在使用低级语言进行编程,而这种情况已经几十年没有发生了。
托拜厄斯·劳因格、阿卜杜勒贝里·查巴内、克里斯托弗·威尔逊 - 你不应该依赖我
大多数网站都使用 JavaScript 库,其中许多库已知存在漏洞。 了解问题的范围以及包含库的许多意外方式只是改善情况的第一步。 这里的目标是,本文中包含的信息将有助于为社区提供更好的工具、开发实践和教育工作。